← Back to list

AI 幫我寫程式!用 Vibe Coding 實作 Google Monarch 系統 (上)

論文:「Monarch: Google’s Planet-Scale In-Memory Time Series Database」

Simon Chu · 2025-07-08 08:51 · 0 claps · 4.8 min read
#monarch #vibe-coding #java
Open on Medium ↗
Wiki topics: 💻 · Programming 🔭 · Astronomy & Space

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