他們的動態

  1. 2026年11月
  2. Tibo
  3. poteto
  4. poteto
  5. poteto
  6. poteto
  7. poteto
  8. Tibo
  9. Tibo
  10. Tibo
  11. Tibo
  12. Tibo
  13. Tibo
  14. poteto
  15. Tibo
  16. Tibo
  17. poteto
  18. Tibo
  19. Tibo
  20. Tibo
  21. poteto
    poteto ·
    雖然我滿看好形式化方法的,但我覺得還是值得降低一下期待,自己去研究研究(免責聲明:我不是這方面的專家)。它沒辦法保證你的程式碼沒有 bug,只能保證在某些假設下程式碼符合 spec,而 spec 來自人們想要什麼,不是來自數學。只要我們還在為人類寫軟體,就沒有什麼能證明你的 spec 是對的,只有你自己能判斷。 我在 pstack 裡做 /statechart 這個 skill,主要是因為它能讓你程式碼裡隱含的狀態機變得更明顯、更好讀,這樣你就能縮小 review 的範圍,在更高的層次去審:它到底符不符合你的意圖和目標?我做遊戲 tibo.dog 的時候狂用這個 skill,下面是故事模式的 statechart,我靠它抓出了好多 bug。 從這個角度看,我覺得模型檢查(像是 TLA+ 搭 TLC)對端到端理解和檢查系統的屬性滿有用的,而且你不用寫一大堆新的驗證程式碼。spec 不是你真正的程式碼,所以總有飄移的風險,但到目前為止我用它找到真 bug 的經驗都還不錯。我通常也會搭配經驗驗證(實際跑程式碼)來確認 bug 是真的。 其他類型的形式化驗證,像是定理證明(如 Lean、Dafny)、有界模型檢查(如 CBMC、Kani)等,各有各的取捨。證明能涵蓋所有可能的輸入,但只針對你寫明的屬性,而且要多寫很多程式碼、多花很多功夫。有界模型檢查可以直接跑在你真正的程式碼上,避免了飄移,但它只檢查到一定步數,所以比較擅長找 bug,而不是證明沒有 bug。 所以我覺得在近中期,你還是得替程式碼庫分層:約束和護欄(型別、lint 規則、API 設計、重構)、經驗驗證(測試、evals、真實使用),以及對真正需要的部分做形式化驗證。單靠哪一個都抓不完,但疊在一起能抓到多得多的問題,也能縮小留給你 review 的部分。 不過也許到了極限,bitter lesson 會勝出,每次都能完美地印出零 bug 的程式碼。就算是那樣,/statechart 在確認 agent 有沒有正確理解你的意圖這件事上,看起來還是很有用。還沒試過的話就去試試吧!
  22. Tibo
  23. Tibo
  24. Tibo
  25. Tibo
  26. Tibo
  27. poteto
  28. poteto
  29. Tibo
  30. poteto
  31. Tibo
  32. Tibo
  33. poteto
  34. Tibo
  35. poteto
  36. Tibo
  37. poteto
  38. poteto
  39. Tibo
  40. Tibo
  41. poteto
  42. 2026年10月
  43. poteto
  44. poteto
  45. Tibo
  46. poteto
  47. poteto
  48. Tibo
  49. poteto
  50. Tibo
  51. poteto
  52. Tibo
  53. Tibo
  54. poteto
  55. poteto
  56. poteto
  57. poteto
  58. Tibo
  59. poteto
  60. poteto
  61. poteto
  62. Tibo
  63. poteto
  64. poteto
  65. poteto
  66. poteto
  67. Tibo
  68. Tibo
  69. poteto
  70. Tibo
  71. poteto
  72. Tibo
  73. Tibo
  74. Tibo
  75. poteto
  76. Tibo
  77. poteto
  78. Tibo
  79. poteto
  80. poteto
  81. poteto
  82. Tibo
  83. Tibo
  84. Tibo
  85. Tibo
  86. Tibo
  87. Tibo
  88. poteto
  89. Tibo
  90. poteto
  91. poteto
  92. poteto
  93. poteto
  94. poteto
  95. poteto
  96. poteto
  97. poteto
    poteto ·
    一直讓我有點在意的是,有些人把 slop 當成是發生在自己身上的事,好像自己只是個無能為力的旁觀者,什麼都做不了 不好意思,你可是軟體工程師耶,你 literally 學會了怎麼讓沙子思考、讓電腦聽你指揮?!現在你卻說你對這件事沒辦法?拜託 想穿過這些噪音,你其實只需要知道兩件事: 1. 你得給你的 agent 一個能驗證自己工作的方式(我剛發過,就不重複了) 2. 你的程式庫就是記憶 第 2 點也不是什麼新鮮事,我們一直都有 lint 規則、診斷做得很好的編譯器和強型別系統、LSP 等等,幫我們寫出更好的程式碼。寫程式的人換成 agent 也沒什麼不同,你只是需要更多、更強的這些。 先別管 rules 和 skills,這些以後再加。 是的,你的程式庫對 agent 來說就是一種記憶!agent 特別喜歡在已經存在的東西上繼續擴充。所以你見過的每一個小毛病、每一個煩人的點,你從 agent 身上看到的每一個錯誤和壞模式,都得變成一條約束,否則 agent 就會像病毒一樣在你的程式碼裡不斷重複同樣的錯誤。然後你不斷觀察、不斷重複這個過程,直到你的程式庫被鎖得夠緊,就算是上下文很少的 agent 也能一發打出高品質的 PR。 更好的方向是重構/重寫你的程式碼,讓 agent 的反模式在類別上就不可能發生。把型別系統用起來,用那些能縮小架構搜尋空間的函式庫/框架,或者乾脆像我們為 grok bot 做的那樣,自己造一個框架,設計高品質的底層原語和想清楚的 API
  98. poteto
  99. poteto
  100. Tibo
  101. Tibo
  102. poteto
  103. poteto
    poteto ·
  104. poteto
  105. poteto
  106. poteto
    poteto ·
    程式碼庫裡一直都有隨便亂寫的東西。我們一直都能接受,因為除了任務關鍵的「硬」軟體(例如嵌入式),程式碼很少需要完美。 swe 是一種很特別的工程,因為你常常在打造一個不斷演化、幾乎像有生命的東西——使用者口味會變,你的心智模型會變,功能來了又走。 老實說,我和很多寫了很久程式的人一開始(像是 2024 年那時候)都懷疑 agent 會不會寫正式環境的程式碼。「那我們漂亮的程式碼庫裡混進來的那些垃圾怎麼辦?」 可是以前就有人類寫的垃圾,而且多得是!說真的,大多數人把「不是我寫的程式碼」叫垃圾。現實是 99% 的人(包括我自己)根本不知道好程式碼長什麼樣,更別說寫得出來。我認為好程式碼是: • 正確 • 沒有 bug • 跑起來又快又省成本 真正的好程式碼一直以來都又難又貴,因為有很長一段時間(也許 @bendlang 會改變這件事),程式碼並不是能便宜、形式化地保證同時具備這三個特性。這就是為什麼寫硬軟體更難更貴,因為看用途,你可能只有一次機會,所以一開始就得對。 但我們用的大多數軟體並不需要是好程式碼才有價值。事實上,我們用的軟體很可能大多都無法形式化驗證!我們用一些 bug 換速度和進展,所以靠測試和 o11y,採取更迭代的做法。這是好事! agent 幫我們跑得更快,如果你願意接受,它也能幫我們寫出更好的程式碼。它不會是「好程式碼」(那還是很貴),但平均來說、規模化之後很可能好得多。 swe 的新手藝就是搞懂怎麼做到這件事。現在這是你的工作了!如果你用不用 agent 的生產力沒差多少,那你是哪裡做錯了。但現在接受它、把它當成學一整棵新技能樹的機會,還不算太晚。
  107. poteto
  108. poteto
  109. poteto
  110. poteto
  111. poteto
  112. poteto
  113. poteto
  114. poteto
  115. poteto
  116. poteto
    poteto ·
    量確實重要 聽著,我懂。如果你在 agent 出現之前就是工程師,那你對拿程式碼行數和 PR 數量來衡量任何形式的生產力抱持懷疑,完全合理。我也同意!或者說,至少我以前同意。為了方便解釋,我會從一個至少 50 人的大團隊裡的工程師角度來講。 以前量不重要,因為我們看的是影響力。就算 PR 不多,你也可以有很大的影響:例如改一行設定,就可能幫公司省下幾百萬美元。 但在 agent 出現之前,我看到量被拿出來討論的時候,基本上都是針對極端狀況。差的一端可能是表現吃力的人,另一端可能是「寫碼機器」型的人。所謂寫碼機器,就是那種能把自己關在房間裡,出來時抱著一疊 PR、解決了一大堆問題的人。所以量確實重要,但只在分布的兩端,而且要和影響力一起看。 如果你在大型科技公司待過,你就懂我的意思。agent 的特點是,大公司的問題現在也變成中小公司的問題了。 agent 怎麼改變了這筆帳?嗯,現在每個人都有能力成為寫碼機器。你手上有超強的前沿模型,寫程式比我們任何人都好,速度也比我們快得多。在這樣的世界裡,如果你產出的 PR 數量還跟以前一樣,你難道不會停下來想想,為什麼自己沒有變得更有效率?外星智慧都來了,你卻還比不過一個人類寫碼機器? 這又回到我為什麼一直在講信任。如果你沒下功夫去建立對 agent 產出的信任,就很難把生產力規模化。 沒錯,這種做法確實需要更多 token,但我是從「每單位智慧的成本」來思考的。在 agent 之前,這個成本非常高——你得雇很多領六位數高薪的軟體工程師來做事。token 現在還是貴,但算進智慧的成本,它很可能會隨著時間變便宜。今天看起來誇張的開銷,6 個月到一年後很可能就負擔得起了。一個用 agent 的工程師,能做幾十甚至上百個工程師的工作,成本只是零頭。 我覺得大家還沒真正意識到的現實是:軟體工程師的工作真的變了。我們的工作不再只是產出軟體(好啦老實說從來都不只是寫程式,但為了解釋先忍耐一下),而是打造那台寫軟體的機器。這種軟體工廠的概念,或者我喜歡叫它米其林廚房,現在還是個研究題目。這也是我喜歡分享的東西,不是為了炫耀,而是想讓你們看看,當你在大規模使用 agent 時投入大量嚴謹度,能做到什麼。
  117. poteto
  118. poteto
  119. poteto
  120. poteto
  121. Tibo
  122. Tibo
  123. poteto
  124. poteto
  125. Tibo
  126. Tibo
  127. poteto
  128. poteto
  129. Tibo
  130. Tibo
  131. Tibo
  132. poteto
  133. Tibo
  134. Tibo
  135. poteto
  136. Tibo
  137. Tibo
  138. Tibo
  139. Tibo
  140. poteto
  141. poteto
  142. poteto
  143. poteto
  144. poteto
  145. 2026年9月
  146. poteto
  147. Tibo
  148. 2026年8月
  149. Tibo
  150. poteto
  151. 2026年6月
  152. Tibo
  153. 2026年5月
  154. Tibo
  155. Tibo
看完整時間線 →