在前面二十一天的旅程中,我們走過了需求分析、使用者故事拆解、介面設計、測試策略,今天終於要進入 AI-DLC Sprint 的第五個環節 - AI Developer。這不是傳統的「寫程式」階段,而是一個全新的開發模式,其中 AI 不再只是程式碼生成器,而是真正的開發夥伴。
還記得剛開始使用 GitHub Copilot 的時候嗎?那種「寫註解就能生成程式碼」的驚喜感。但很快你就會發現,單純的程式碼生成有其極限 - 它缺乏上下文理解、無法把握整體架構、更不懂你的業務邏輯。
AI Developer 的角色遠不止於此。它是一個能夠理解你的領域模型、遵循你的測試規範、符合你的架構設計的開發夥伴。更重要的是,它能夠在開發過程中主動提出建議、發現潛在問題、推薦更好的實作方式。
筆者在實踐中嘗試了一套層次化的程式碼生成策略,從宏觀到微觀,從架構到細節,讓 AI 在不同層次發揮作用。
不像傳統的 Vibe Coding 的一句話一句話鞭策著 AI,而是讓 AI 像人類一樣讀懂所有文件以及依照嚴格的規範進行架構規劃到實作的完整工作流。
在這個層次,AI 負責產生整體的專案結構和架構骨架。記得我們在 DDD 階段定義的領域模型嗎?
AI Developer 會基於這些模型生成對應的專案結構。
筆者很喜歡 Claude Code 的 Subagents 的功能,簡直把這個概念發揮得淋漓盡致
比如當我告訴 AI:「基於我們定義的電商領域模型,建立專案結構」,它會生成:
這不是簡單的模板套用,而是基於你的具體業務需求的客製化架構。
在模組層,AI 負責實作具體的業務邏輯。這裡的關鍵是保持領域語言的一致性。當你說「實作訂單聚合根的下單流程」,AI 會:
這是最細粒度的生成,但也是最容易出錯的地方。筆者的的經驗是,不要讓 AI 一次生成太長的方法,而是採用「步進式生成」,並且粒度越小越好:
這種分層策略的好處是,每一層都有明確的驗證標準,錯誤不會在層與層之間擴散。
前面的流程我們其實已經跟 AI 協作將 User Story & AC 切得非常細,這時候的實作的精準度可以趨近我們想要的樣子
Pair Programming 一直是提升程式碼品質的有效方法,但傳統的人與人結對常常因為節奏不同、風格差異而產生摩擦。AI Pair Programming 改變了這個局面。
在與 AI 一起工作時,我發現最有效的模式是動態切換角色:
AI 當 Driver,你當 Navigator
AI 當 Mentee,你當 Mentor
這種模式適合處理大量的樣板程式碼或重複性工作。你提供高層次的指導,AI 負責具體實作。比如:
在這種模式下,你的注意力可以放在業務邏輯和架構決策上,而不是語法細節。
你當 Coder,AI 當 Reviewer
這種模式適合處理複雜的業務邏輯或創新性的功能。你寫程式碼,AI 在旁邊提供建議:
AI 的建議不是命令,而是參考。你可以選擇接受、修改或忽略。
可以善用 Claude Code 的 Output styles 功能,以及 AI Code Review 的 Pipeline
如同 SDD 的 Specify - Plan - Tasks 的概念,將規格撰寫清楚,切完的任務十分清楚的情況下,搭配人類在旁邊的監督,可以達到與 AI 協作的完美情況。
重構是保持程式碼健康的關鍵,但什麼時候重構、重構到什麼程度,一直是開發者的難題。AI Developer 在這方面展現了獨特的價值。
AI 能夠識別多種程式碼異味(Code Smell),並在適當的時機提出重構建議:
立即重構的訊號
當 AI 發現這些問題時,它會立即提出:「這個方法過長,建議拆分成三個小方法,每個負責單一職責。」
延遲重構的時機
這時 AI 會說:「發現潛在的重構機會,但建議等功能穩定後再進行。已記錄在技術債清單中。」
還記得昨天討論的 Acceptance Criteria 嗎?今天我們要看看如何把這些 AC 轉化成實際的程式碼。
當你有了清晰的 Given-When-Then,AI Developer 能夠自動產生對應的程式碼結構:
這種映射不是機械的翻譯,而是智慧的轉化。AI 會考慮效能、可維護性、錯誤處理等多個面向。
在 TDD(測試驅動開發)模式下,AI Developer 展現了驚人的效率提升:
AI 根據 AC 快速生成測試案例,確保測試真的會失敗(避免假陽性)。
AI 生成最小可行的實作,不過度設計,只求通過測試。
AI 識別重複、提取共用邏輯、改善命名,同時確保測試持續通過。
傳統的 TDD 循環可能需要 30-60 分鐘,有了 AI 協助,這個時間可以縮短到 5-10 分鐘。
在實作 DDD 時,最大的挑戰是保持領域語言的純粹性。AI Developer 在這方面的表現讓我驚艷:
AI 會記住你定義的所有領域術語,在程式碼中保持一致的命名。不會出現同一個概念有多個名稱的情況。
複雜的業務規則會被正確地封裝在領域物件中,而不是散落在控制器或服務層。
當某個動作會影響系統狀態時,AI 會自動建議發布領域事件,維持系統的最終一致性。
AI Developer 不是要取代程式設計師,而是要解放程式設計師的創造力。當 AI 處理了重複性的程式工作,你就有更多時間思考架構、設計系統、理解業務。
記得一位資深工程師說過:「寫程式碼只是軟體開發的一小部分,理解問題、設計解決方案、確保品質才是核心。」AI Developer 正是幫助我們聚焦在這些核心價值上。
程式設計的本質不是打字,而是思考。AI 可以加速打字,但思考依然是人類的特權和責任。擁抱 AI Developer,不是為了少寫程式碼,而是為了寫出更好的程式碼。