剛看了OpenAI 發的那篇《How we used Codex to build Sora for Android in 28 days》的凡爾賽文章,整個Sora 的安卓客戶端App大約85%的程式碼是AI寫的。發布首日,用戶24小時內產生了超過100萬條視頻,且品質很穩定,無崩潰率99.9%。 對於這樣的結果肯定有人質疑有人覺得程式設計師要完成。說說我看完的感覺,如果打個比方,就是幾個特種兵配上了最先進的武器,自然所向披靡。所以先不用神化這個結果,然後就算我們不是特種兵,一樣可以從這個結果去學習借鏡到有價值的結果。 《人月神話》作者Fred Brooks 說過一句軟體工程中被反覆驗證的名言:「為一個延期的軟體專案增加人力,只會讓它延期得更厲害」。因為增加更多的工程師往往因為增加了溝通成本、任務分散和整合成本,反而降低效率。 那往團隊中加AI 呢? 取決於團隊成員駕馭AI 的能力。我們有句古話叫:“韓信帶兵多多益善”,如果團隊成員是韓信,那麼AI Agents 越多越好。 OpenAI 安卓團隊顯然是精銳,只有4 個人,就像一隊特種兵,每個人都配備了各種機器人輔助。 那他們怎麼做的呢? 1. 架構先行:人先搭好架子,再讓AI來填空。 這個架子怎麼搭? 團隊先自己定義了App的整體架構:模組化方案、依賴注入、導航結構、認證流程、基礎網路層。然後手寫了幾個有代表性的功能,作為範本。 關鍵一步:他們寫了大量的https://t.co/9M2TJcCBVQ文件,相當於寫給AI的新人手冊。例如裡面會寫:每次提交前必須跑detektFix檢查格式,CI會卡這個。 這樣一來,每次啟動新的Codex session,它都能快速讀到這些規範。就像給新進員工一本內部wiki,減少重複解釋的成本。 團隊總結了一句話:我們不需要告訴Codex怎麼寫程式碼,我們需要告訴它在我們團隊什麼才算正確。這是微妙但重要的區別。 2. 先規劃再寫程式碼 一開始他們也試過偷懶,直接丟一句"這是功能需求,這是相關文件,你去實現"。結果程式碼能跑,但歪得厲害,完全不符合架構預期。 後來他們改了流程。任何複雜功能,第一步不是讓AI寫程式碼,而是讓AI先理解系統。例如讓它讀一組相關文件,總結資料是怎麼從API流到Repository再到ViewModel最後到UI的。然後人來糾正它的理解。 理解對了,再讓AI出一份實現計劃,像個迷你設計文件。哪些文件要改,要引入什麼新狀態,邏輯怎麼流轉。人確認計畫沒問題,AI才開始動手。 這個規劃環節看起來慢了,其實省了大量返工。更重要的是,當你知道AI的計畫是什麼,review它的程式碼就容易多了。你是在檢查執行是否符合計劃,而不是對著一堆diff發呆。 他們還有一個小技巧:對於特別長的任務,讓AI把計畫保存到文件裡。這樣換一個session也能繼續。 當多個Codex 任務同時跑起來,整個開發體驗發生了質變。感覺不像在用工具,更像在管理一個團隊。 一個任務在做播放器優化,另一個在寫搜尋功能,第三個在處理錯誤邏輯,第四個在補測試。它們各自推進,隔一段時間就來報告:我這個模組規劃好了,你看看行不行?或直接甩過來一個大diff。 工程師的工作從寫程式碼變成了做決策和給回饋。瓶頸不再是敲程式碼多快,而是大腦審查驗證程式碼的速度多快。 再次應驗了《人月神話》的話,你不但不能無限增加人力,也不能無限增加Agent。 3. 最好的跨平台框架是AI Agent 還有一個有趣的實踐:跨平台開發的新範式。 Sora已經有iOS版本了。團隊做Android時,直接把iOS程式庫也掛進Codex的環境。然後告訴Codex:參考iOS 的程式碼實現,再看看我們Android的架構,你來產生對應的Kotlin程式碼。 這就是為什麼文章中開玩笑說:忘掉React Native和Flutter吧,未來的跨平台框架就是Codex。 這句話半認真半玩笑。因為應用邏輯是可移植的。資料模型、網路請求、校驗規則,用Swift寫和用Kotlin寫,本質是同一套東西。 AI擅長的正是這種翻譯工作,給它足夠的上下文,它就能在語言之間無損轉換。 所以回過頭來看,為什麼說不能過度神化呢? 因為雖然只4 個人,但每個人都是「韓信」那樣善於帶團隊的角色,用起Agent 來得心應手。但即使如此,也做不到“多多益善”,畢竟還是需要人去分配任務驗證結果,人是平靜。另外他們已經有了iOS 程式碼,所以很多邏輯可以共用,只需要AI 去「翻譯」。 但還是有很多可以學習的地方。 先設計架構再去讓AI 填空,這樣程式碼更容易維護,也更好的保證品質。 先規劃再寫程式碼,讓AI 充分理解上下文再動手。很多人吐槽Codex 太慢,但我有時候就怕Agent 太快亂來,寧可多等會,讓它多了解上下文,這樣一次成功,否則返工起來時間成本更高。 給AI 好的參考,讓它能照葫蘆畫瓢。一開始的時候先花點時間把最佳實踐沉澱下來,後續讓AI 去參考這些最佳實踐,生成結果就會好很多。如果有其他語言的實現,讓它去「翻譯」也會事半功倍。 能做好這些才能用好AI 輔助開發。 AI輔助開發不是讓開發的標準降低了,反而是提高了標準。 Agent 擅長完成一個小的具體任務,但軟體工程不是一個小的任務,它是由無數動態變化的小任務組成的。需要人去分解去驗證。 所以未來軟體工程師的核心能力,不是寫程式碼快,而是兩件事:對系統的深度理解,以及和AI長期協作的能力。 代碼在變得廉價,但品味在變得昂貴。那些能定義什麼是正確、什麼是優雅、什麼是面向未來的人,會越來越稀缺。 AI把搬磚的活兒接走了,但畫圖紙的活兒還是你的。
正在加载线程详情
正在从 X 获取原始推文,整理成清爽的阅读视图。
通常只需几秒钟,请稍候。
