解決的問題
用了幾款AI的IDE (cursor、qoder 等) 編程, 基本遇到幾個核心問題
- 很難準確描述你的功能, 完全靠AI去猜測不停的補充細節. 如: 做個登錄功能, AI容易自由發揮, 你得在補充是否有驗證碼、是否支持手機登錄、密碼是否限制等.
- 由於token的限制, AI容易又忘記了前面的溝通內容, 又得重新強調一遍. 如果使用壓縮對話, 那細節可能被丟失, AI忘記後, 又容易重新把原來改好的細節給改錯, 導致來回拉扯
本質上是一種解釋性的協助, Spec-Driven Development 是一種基於規範驅動開發 ( 或者契約式開發的模式);
什麼是Spec-Driven Development 呢
開發都始於一份嚴格對齊的Spec文檔, 所有代碼、測試、架構都必須要嚴格準守, 後續變更也是通過Spec來驅動, 而非去改代碼. 包括自動化工具也是基於Spec去生成代碼、測試用例等.
簡單來説, 後續程序員主要工作在於制定Spec文檔, 代碼實現由AI來完成.
基於Qoder的實現方式選擇
最近都改用Qoder了 ( 主要性價比可以, 當前一月2美金 , 實踐下來也夠用了, cursor平替)
- 用Qoder自帶的Quest Mode 去實現, 適合個人探索, 無需安裝額外的MCP插件
- 通過 spec-workflow-mcp插件. 適合團隊項目, 當前推薦的幾個mcp , 基於開源的, 如:https://github.com/Pimzino/spec-workflow-mcp
用Qoder實現 Spec-Driven Development模式
新建任務, 進入 Quest Mode
打開Qoder 選擇 Quest Mode . 新建個任務
輸入
請幫我構建一個簡單的開源項目介紹網站
- 前端使用 React + Next.js
- UI 使用簡潔的卡片式佈局,支持添加、標記完成、刪除任務
- 後端使用 Spring Boot + jdk 8 基於MVC的架構
- 數據暫時保存在內存中(不需要數據庫)
- 前後端分離,通過 HTTP 通信
功能上
- 先從固定github上採集最活躍的Top10的開源項目, 並在首頁顯示
- 不需要管理後台, 只需要10分鐘更新採集一次數據展示
生成相關設計文檔
qoder開始和我交互確認細節, 問答模式, 開始選擇細節
回答完成後, 開始根據細節, 生成設計文檔
看完設計文檔, 截圖幾個, 比我親自畫還好
開始實施任務
文檔好了, 開始寫相關任務
完成任務
訪問效果
需求變更
如果我後續將進行需求變更, 需要再增加一個新的任務, 提出了變更
對當前的需求進行變更, 把顯示3個項目變成只顯示兩個項目, 並採集任務增加到12個
收到後, 它開始檢查了歷史文檔, 任務, 並新建了個新的markdowm
修改後的效果
整體思考
以後的開發流程是否會變為
- 程序員提出意圖
- AI配合梳理,通過對話、梳理和需求
- 生成最終Spec文檔, 程序對spec文檔進行確認
- AI完成任務執行.