建構 VMark 要花多少錢?
重點摘要
VMark 擁有約 109,000 行生產程式碼和 206,000 行測試程式碼,涵蓋 TypeScript、Rust、CSS 和 Vue。一個人工團隊從零建構需要 4,239 個開發人日(約 17 人年)。以美國市場費率計算,這意味著 340 萬至 420 萬美元。而實際上,它由一個人借助 AI 輔助,在 85 個日曆天內完成,成本約為 2,000 美元——生產力提升約 50 倍,成本降低約 99.9%。
為什麼有這個頁面
一個問題反覆出現:「VMark 到底花了多大力氣?」
這不是行銷頁面。這是一份透明的、資料驅動的分析,使用真實的程式碼指標——不是憑感覺。這裡的每個數字都來自 tokei(程式碼行統計)、git log(歷史紀錄)和 vitest(測試計數)。你可以自行複製儲存庫來重現這些數字。
原始指標
| 指標 | 數值 |
|---|---|
| 生產程式碼(前端 TS/TSX) | 85,306 LOC |
| 生產程式碼(Rust 後端) | 10,328 LOC |
| 生產程式碼(MCP 伺服器) | 4,627 LOC |
| 生產 CSS | 8,779 LOC |
| i18n 語系資料 | 10,130 LOC |
| 網站(Vue + TS + 文件) | 4,421 LOC + 75,930 行文件 |
| 測試程式碼 | 206,077 LOC(656 個檔案) |
| 測試數量 | 17,255 個測試 |
| 文件 | 75,930 行(320 頁,10 種語言) |
| 提交次數 | 84 個活躍日內 1,993 次 |
| 日曆時間 | 85 天(2025 年 12 月 27 日至 2026 年 3 月 21 日) |
| 貢獻者 | 2 人(1 人 + AI) |
| 異動比率 | 3.7 倍(123 萬次插入 / 33 萬最終行數) |
| 測試與生產比 | 2.06:1 |
這些數字代表什麼
- 測試與生產比 2.06:1 非常傑出。大多數開源專案約在 0.3:1 左右。VMark 的測試程式碼是生產程式碼的兩倍。
- 異動比率 3.7 倍表示最終程式碼庫中的每一行,總共寫了 3.7 行(包含改寫、重構和刪除的程式碼)。這顯示經歷了大量迭代——不是「寫一次就上線」。
- 84 個活躍日內 1,993 次提交,平均每天約 24 次提交。AI 輔助開發會產生大量小型、聚焦的提交。
複雜度分層
並非所有程式碼都是一樣的。一行設定解析程式碼和一行 ProseMirror 外掛程式碼的工作量完全不同。我們將程式碼庫分為四個複雜度層級:
| 層級 | 包含內容 | LOC | 速率(LOC/天) |
|---|---|---|---|
| 常規(1.0 倍) | i18n JSON、CSS Token、頁面佈局、設定 UI | 23,000 | 150 |
| 標準(1.5 倍) | Store、Hook、元件、MCP 橋接、匯出、Rust 命令、網站 | 52,000 | 100 |
| 複雜(2.5 倍) | ProseMirror/Tiptap 外掛(多游標、專注模式、程式碼預覽、表格 UI、IME 防護)、CodeMirror 整合、Rust AI 服務商、MCP 伺服器 | 30,000 | 50 |
| 研究(4.0 倍) | CJK 排版引擎、組合輸入防護系統、具備 IME 感知的自動配對 | 4,000 | 25 |
「LOC/天」速率假設一位資深開發者撰寫經過測試和審查的程式碼——不是未審查的原始產出。
為什麼編輯器外掛這麼貴
VMark 中單項成本最高的部分是 ProseMirror/Tiptap 外掛層——34,859 行程式碼,管理文字選取、文件事務、節點視圖和 IME 組合輸入。這被普遍認為是 Web 開發中最困難的領域:
- 你操作的是文件模型,而不是元件樹
- 每次編輯都是一個必須維護文件完整性的事務
- IME 組合輸入(用於 CJK 輸入)增加了一整套平行狀態機
- 多游標需要同時追蹤 N 個獨立選取範圍
- 復原/重做必須在上述所有情況下正確運作
這就是為什麼外掛層被歸類為「複雜」(2.5 倍乘數),而 CJK/IME 程式碼被歸類為「研究」(4.0 倍)。
工作量估算
| 組件 | LOC | 開發人日 |
|---|---|---|
| 第 1 層生產程式碼(常規) | 23,000 | 153 |
| 第 2 層生產程式碼(標準) | 52,000 | 520 |
| 第 3 層生產程式碼(複雜) | 30,000 | 600 |
| 第 4 層生產程式碼(研究) | 4,000 | 160 |
| 測試程式碼 | 206,077 | 1,374 |
| 文件(10 種語言) | 75,930 | 380 |
| 小計 | 3,187 | |
| 間接開銷(設計 5% + CI 3% + 審查 10%) | 574 | |
| 異動稅(3.7 倍 → +15%) | 478 | |
| 總計 | 4,239 開發人日 |
這大約是 17 人年的全職資深工程工作量。
關於測試工作量的說明
測試套件(206K LOC,17,255 個測試)佔 1,374 開發人日——超過總工作量的三分之一。這是專案測試優先紀律的代價。少了它,專案建構成本會便宜約 40%,但維護難度會顯著增加。
成本估算
使用美國市場費率(全部成本——薪資 + 福利 + 間接費用):
| 情境 | 團隊 | 時長 | 成本 |
|---|---|---|---|
| 單人資深開發($800/天) | 1 人 | 17.7 年 | $3.39M |
| 小型團隊(平均 $900/天) | 3 人 | 2.3 年 | $3.82M |
| 完整團隊(平均 $1,000/天) | 5 人 | 10.6 個月 | $4.24M |
團隊規模不是線性成長的。一個 5 人團隊的生產力大約是 1 個人的 4 倍(不是 5 倍),因為溝通開銷——這就是布魯克斯法則的體現。
AI 的真實情況
| 指標 | 數值 |
|---|---|
| 實際日曆時間 | 85 天(12 週) |
| 人工等價 | 4,239 開發人日(約 17 人年) |
| 生產力倍數 | 約 50 倍 |
| 估計實際成本 | 約 $2,000(Claude Max 訂閱) |
| 人工等價成本(單人) | $3.39M |
| 成本降低 | 約 99.9% |
50 倍乘數代表什麼
這不代表「AI 比人類聰明 50 倍」。它代表:
- AI 不需要上下文切換。 它能將整個程式碼庫保持在記憶中,同時對 10 個檔案進行修改。
- AI 以生產速度撰寫測試。 對人類來說,撰寫 17,255 個測試是令人崩潰的苦差事。對 AI 來說,只是更多的程式碼。
- AI 瞬間處理樣板程式碼。 10 種語言的翻譯層(10,130 LOC 的 JSON + 320 頁文件)會讓人工團隊花費數週。AI 只需幾分鐘。
- AI 不會感到無聊。 那 656 個涵蓋邊界情況、IME 組合輸入和 CJK 排版的測試檔案,恰恰是人類會跳過的工作。
人類的角色是判斷——建構什麼、何時停止、選擇哪種方案。AI 的角色是勞動——撰寫、測試、除錯、翻譯。
市場對比
| 面向 | VMark | Typora | Zettlr | Mark Text |
|---|---|---|---|---|
| 核心功能 | Markdown 所見即所得 + 原始碼模式 | Markdown 所見即所得 | 學術 Markdown | Markdown 所見即所得 |
| LOC(估計) | 約 109K 生產程式碼 | 約 200K(閉源) | 約 80K | 約 120K |
| 貢獻者 | 2 人(1 人 + AI) | 1-2 人(閉源) | 約 50 人 | 約 100 人 |
| 年齡 | 3 個月 | 8 年以上 | 6 年以上 | 6 年以上 |
| 價格 | 免費(測試版) | $15 授權 | 免費 / 開源 | 免費 / 開源 |
| 核心差異 | Tauri 原生、MCP AI、CJK 原生、多游標 | 精緻度高、PDF 匯出 | Zettelkasten、引用管理 | Electron、成熟穩定 |
這個對比說明了什麼
VMark 在 85 天內達到了其他專案用 6 至 8 年、50 至 100 位貢獻者才達到的同等程式碼規模和功能集。測試紀律(17K 測試,2:1 比率)超過了本次對比中的所有開源 Markdown 編輯器。
這並不是因為 VMark 「更好」——它更年輕,經受的實戰檢驗更少。但它證明了 AI 輔助開發的可能性:一個人可以產出以前需要一個獲得資助的團隊才能完成的成果。
是什麼讓 VMark 建構成本高昂
三個因素驅動了成本:
編輯器外掛複雜度——34,859 行 ProseMirror 外掛程式碼,涉及選取、事務、節點視圖和 IME 組合輸入。這是第 3/4 層程式碼,一位資深編輯器框架專家的撰寫速度約為每天 50 LOC。
極端的測試紀律——2.06:1 的測試與生產比代表僅測試程式碼(206K LOC)就比生產程式碼需要更多的工作量。這是一項刻意為之的投資——它讓 AI 輔助開發得以永續。
10 種語言的完整國際化——320 頁文件、80 個語系 JSON 檔案和一個完整的在地化網站。這是通常只在獲得資助的商業產品中才能看到的營運規模,而非個人專案。
重現這些數字
所有指標都可以從公開儲存庫重現:
# 複製並安裝
git clone https://github.com/xiaolai/vmark.git
cd vmark && pnpm install
# LOC 指標(需要 tokei:brew install tokei)
tokei --exclude node_modules --exclude dist .
# Git 歷史
git log --oneline | wc -l
git log --format='%ai' | awk '{print $1}' | sort -u | wc -l
# 測試數量
pnpm vitest run src/ 2>&1 | tail -5方法論
本分析中使用的生產力基線(LOC/天速率)是針對資深開發者撰寫經過測試和審查的程式碼的業界標準估算。這些資料來自軟體估算文獻(McConnell、Capers Jones),並針對生產級品質的產出進行了校準——而非原型或概念驗證程式碼。