我如何與 AI 協作開發,我的開發步驟分享
昨天到工程師場子分享,想說跟大家對照一下,現在是否多數人都跟我一樣,寫程式完全不手打任何一行 code,全部都是 AI 做的。
結果發現,現場只要有在用 AI 開發的人,多數時候真的都是讓 AI 來完成程式撰寫工作。
目前我的開發組合是 Claude Code / Claude Design / Fly.io / Github / Cloudflare,其他還有根據程式功能需要而使用的第三方元件。
做一個新系統的習慣是:
- 跟 Claude 討論我想解決的問題,以及我的核心需求,中間我可能會用 Claude Cowork 做本地資料的分析,然後請他廣泛收集一下資訊,做幾輪 prototype 的模擬。確認方向是否是我所期待的。
- 對完需求後,請他產出系統定位、限制、邊界與 PRD。
- 把 PRD 跟幾個 md 檔丟給 Claude Design。產出系統設計稿。這邊必須稱讚一下 Claude Design,他產出的設計又快又好,還可以一次出多個版本供我挑選。順便連 icon 都幫忙設計好了,有夠讚。
- 把 PRD、md、設計檔提供給 Claude Code 請他幫忙規劃開發計畫。並告訴他優先以功能完整性為主,不用在意 MVP。對我來說,一個完整可動的東西,其實就是 MVP 了,對 AI 來說,一次到位跟 MVP 交付的時間,很可能就是一兩個小時的差別。
- 通常我會在睡覺前進行新系統的首次任務交付。我會說,你按計畫依序開發,直到 Phase XX 為止,我希望我早上起床時可以有一個能正常運作的系統。因為我本機開 auto mode,除了prod 環境需要我許可外,其他都讓 AI 自行處理。在部分專案中,我甚至是直接連 prod 都隨便它。
上述工作中,步驟 1 是最花時間的,常見的問題有兩個:
- 我想法還不具體,期望太大,但 context 太少。
- 又或者手邊的 raw data 達不到我想要的結果,可能是資料量不夠,時間跨度不足,欠缺關鍵資訊。
想法不具體,那就回到需求跟問題本身,請他多提幾個解決方案;資料不足,我會請他模擬更多數據,讓我能感受一下數據到位的樣子。這個步驟就算卡,最多也就是半天的時間我能搞定。
後面幾個步驟,除了開發外,速度其實都很快。
確認功能 OK 後,我還會補上幾個比較重要的步驟:
- 資安,這塊除了典型的資訊安全問題外,還會針對因 prompt 有關的 AI sercuity issues,如 prompt injection 做處理。
- Log 機制,前面一兩個系統忘了 log,所以追查問題時反覆來回了很多趟,AI 一直要我幫他下指令,然後跟他回報我看到的訊息。我覺得這就像以前我沒寫 log,然後要使用者告訴我他的步驟跟畫面一樣煩。我問他:「你看不到錯誤 log 嗎?」才發現他根本沒寫 log。所以後來我都是直接補上了。
- Unit test,確保整體程式碼品質。這在以前真的得花不少時間,但現在真的就是分分鐘搞定。
- Integration test,我會讓 AI 生成多個使用者帳戶,逐一跑過所有的 test cases,並產生個別的測試報告。這是用來替代原先的人工測試動作,這幫我省下了不少時間。
- 定期重構,每隔一兩周,我都會請 AI 針對現在的 codebase 檢視技術債。只要是有道理的,我通常會請他直接全部改完。
- 維運機制,以前會很重視監控面板,但現在我關鍵是讓 AI 可監控異常,所以我基本不做監控面板,因為我自己是不看的。這邊的設計就比較單純了,當出現異常,自己發 issue,自己 hot-fix。如果是硬體資源的問題,就自己 scale-up / scale-out,但會設定一個上限值。
大多數的時間都在提需求 + 規劃,執行的時間真的很少。
雖然中間發生過幾次 AI 反覆改都改不好一些問題,或者說有 deploy 了,但我怎麼看都沒有。最後總會發現是他自己搞錯方向了,或者有些說有做的事根本沒做。
也有發生 claude.md hell,也就是開錯 Folder,開到本機根目錄,所以一堆 claude.md + memory.md 檔全部混在一起。效能慢不說,context 混亂連需求都搞錯,參數亂讀當然無法產生預期中的結果。
不論技術怎麼進步,軟體工程的核心還是在「品質」,包含可預期性、可管理性、可延展性。
做出功能是基礎,可持續維護才是挑戰。
如果你覺得我內容寫得還不錯,歡迎訂閱我的電子報,我每雙週會發送一封電子報到你的信箱。訂閱連結在這,過往的電子報也在這:Gipi電子報
也鼓勵你可以將我的電子報分享給你認為有需要的朋友們,也許你的舉手之勞,將會改變另一個人的思維與習慣。