AI 幫我寫程式!用 Vibe Coding 實作 Google Monarch 系統 (上)
論文:「Monarch: Google’s Planet-Scale In-Memory Time Series Database」
AI 幫我寫程式!用 Vibe Coding 實作 Google Monarch 系統 (上)

論文:「Monarch: Google’s Planet-Scale In-Memory Time Series Database」
前情提要
筆者當前的狀態與能力:
- 對於 Java 熟悉度為初生之犢(過往經驗為 Python)。
- 約為 Mid Level 軟體工程師。
一、進入 Vibe Coding 前你該知道的幾件事
1. 清楚你的開發目的與專案階段
- 清楚的功能需求:例如「建立登入 API」或「改寫原本的錯誤處理機制」等與需求細節。
- 列出要使用的工具與技術:如 Spring Boot、kafka、PostgreSQL 等,甚至包含框架版本與套件。
- 對於目標系統有一定的理解:了解系統之間的架構,與要使用那些演算法。
2. 熟悉基本語言與框架
- 了解所選工具的特性與版本差異:例如選擇的工具之間是否有版本相依性。
- 盡可能自行排解簡單錯誤:AI 能幫你 debug,但若完全仰賴它,你會在錯誤的迴圈裡繞不出來。你得學會掌握錯誤的根因,而不是修補症狀。
3. 理解 LLM 的本質與限制
- 學會與 LLM 溝通的技巧:設計有結構的 Prompt,例如明確告知語言、框架、要產出的功能與範例格式等。
- 在必要時從旁協助 AI:包括補充 context、釐清邏輯、微調錯誤,讓它成為真正的「得力助手」,而非失控的亂碼機器。
二、Vibe Coding 實戰環境
筆者為使用 ChatGPT + Gemini 進行技術文件撰寫(若要發想,則使用 DeepSeek 進行深度思考,從中取得靈感與發現未顧及的事項),透過 VSCode + Gemini Code Assist 進行 Vibe Coding。
三、實案例分享:我的 Vibe Coding 工作流程
- 專案類型:使用 Java Spring Framework 實作 Google Monarch 系統
- 撰寫技術文件:
筆者之前已有先透過 NotebookLLM 與其他 AI 工具,先理解與閱讀過論文(可參考之前的文章「科技巨頭如何實現跨系統間的錯誤追蹤與分析」)
I. 將論文分別上傳至 ChatGPT 與 Gemini,且都輸入相同 prompt
請扮演一位資深工程師,依照論文內容,制定詳細的技術開發文件,目標為使用 java spring boot 進行開發
Ⅱ. 各自提取較為完善的描述,若仍然有不確定的則先自行 google 與透過第三方 AI 工具加以驗證。
Ⅲ. 制定出初版技術文件「 System Architecture Document 」
Ⅳ. 嘗試透過以下 prompt 讓 AI 產生程式碼並觀察結果 (預期結果可能不理想,因為文件中未明確定義各服務間的資料傳遞格式與資料內容)
Please play the role of a senior engineer and follow @System Architecture Documen Chinese.md to implement system.
經過了幾番波折(各階段實作 -> test case -> CI/CD)最終完成了,但能正常運作嗎?
Ⅴ. AI 幫我寫完了,結果如何?來分析結果
優於預期:
- 邊界清晰,可以快速理解系統架構並分工開發,約 50% 程式碼可用(堪用)。
- 快速建立系統,約花費 0.5 天閱讀與撰寫技術文件,花費 0.5 天實現程式碼。(但未對錯誤進行 debug,若要排除推估可能約要花費 2 天以上)
- 依照技術文件分階段實現,以利每階段進行初步驗證,減少最終錯誤堆疊,而不堪使用的狀況。
還需優化:
- 依照技術文件,預期為 12 項服務,生成的 9 項服務,而有 2 項無法順利啟動,Leaf Routers 與 Ingestion Routers 兩項服務被合併成一個。 (11 項服務為:Configuration Server / Configuration Mirror / Root Index Server / Root Mixers / Root Evaluator / Zone Index Server / Zone Mixers / Zone Evaluator / Leaf Routers / Leaves / Ingestion Routers / Range Assigner)
- 因技術文件沒明確定義寫入的 API 格式與資料,因此 Leaf Routers 將 DB 資料結構作為模板來實現 API,但這不符合現實中的資料傳輸方式。
- 過度簡化核心算法,且部分功只實作出介面,但未實做對應邏輯。
四、反思
系統目前為半成品,如何完成系統?
- 人工接手完成工作?
- 優化技術文件,再次透過 Vibe Coding 幫我完成系統?
本篇是要 Vibe Coding,當然是要貫徹到底呀‼️
五、下一步
這次的嘗試雖然快速建立了系統雛形,但也暴露出幾個待改善的關鍵點,若能優化以下幾個環節,將有機會真正透過 AI 完成一套完整、可用的系統。
I. 更明確的資料格式與契約定義
目前技術文件雖描述了各服務角色與關係,但缺乏清楚的 API 格式、資料 schema 與傳遞邊界。未來應補上:
- 每項服務的 Input/Output 資料結構(可用 JSON Schema 或 OpenAPI 定義)
- 資料流程圖(Data Flow Diagram),幫助 AI 推理資料走向
- 明確的欄位說明(欄位名稱、型別、是否 nullable、意圖)
Ⅱ. 技術文件設計應更細緻
過去是用一個完整技術文件給 AI,要它「整體實作整個系統」,容易導致混亂與誤解。 改為:
- 於開發路線圖列出更細緻與詳細記錄開發流程,避免一次做太多事情導致發散。
- 加入單元測試設計、資料範例與邊界條件說明,提升產出品質與可測試性
Ⅲ. 系統圖與流程圖輔助理解
文字描述對 AI 來說有限。補上:
- 架構圖(Architecture Diagram)
- 資料流程圖(Data Flow Diagram)
- Sequence Diagram(尤其是跨系統資料互動)
메타데이터
- post_id
- aa160f33e617
- slug
- ai-幫我寫程式-用-vibe-coding-實作-google-monarch-系統-aa160f33e617
- url
- https://medium.com/@chu-chu/ai-%E5%B9%AB%E6%88%91%E5%AF%AB%E7%A8%8B%E5%BC%8F-%E7%94%A8-vibe-coding-%E5%AF%A6%E4%BD%9C-google-monarch-%E7%B3%BB%E7%B5%B1-aa160f33e617
- canonical_url
- https://medium.com/@chu-chu/ai-%E5%B9%AB%E6%88%91%E5%AF%AB%E7%A8%8B%E5%BC%8F-%E7%94%A8-vibe-coding-%E5%AF%A6%E4%BD%9C-google-monarch-%E7%B3%BB%E7%B5%B1-aa160f33e617
- author_url
- https://medium.com/@chu-chu
- status
- ok
- fetched_at
- 2026-07-06 19:44:23