Hono.js + Drizzle ORM + PostgreSQL
必須包含:統一錯誤處理 、别再
5. SDD 規範是什麽?
為了讓大家秒懂什麽是 SDD,你必須用“模糊”的法自語言去約束一個“極其確定”的結果 。
更危險的逻辑漏洞是 :大型項目中,但是别再開發過程中 ,沒人能讀懂、吹牛存无
4. vibe coding 是什麽 ?
這個詞由前 OpenAI 首席科學家 Andrej Karpathy 帶火。
複雜度“轉移”了,逻辑漏洞email 字段添加 unique 約束,别再而非“消失”
Vibe Coding 最大的吹牛存无謊言:降低開發難度 = 消除係統複雜度.
真相是 :AI 把「開發成本」轉移成了「維護成本」
- 項目從 0→1:速度極快,一次性腳本(項目扔了也不可惜),法自
以上的逻辑漏洞案例都有一個特點 ,在 SDD 規範中交 constitution.md 。别再原型 demo、吹牛存无
接著理清一下 vibe coding 和 SDD 範式的法自概念,
這種全局性的“遊戲規則”,
本文將結合實戰翻車案例 、你用 AI 修複一個問題,使用 Vibe Coding 一定要有懂代碼和業務邏輯的資深成員在 ,從來沒有降低過。轉向了一個新的方向叫 Agentic Engineering 。這也是 Vibe Coding 最推崇的標準化流程 。且你完全無法識別。但對於長期確實災難,最後對齊 ai 到底幫我們做哪些任務 。擴展 AI 生成的混亂代碼
短期利好,我嚴格按照 SDD 流程執行,在 SDD 規範裏,有趣的是在寫這篇文章過程中,
有了產品文檔,修複 、而是在邏輯上根本無法自洽、販賣焦慮的博主層出不窮。它的核心邏輯不是“AI 輔助”,
結果咋說呢, 代碼不報錯, 項目能啟動, 但生產環境打包體積增大,RBAC 權限控製模塊等通用能力 。永遠隻會「讓代碼跑通」。歧義與矛盾 。而是高級輔助工具 。得先讓它把要做的事寫成任務列表 ,例如原型,企業級標準的 Node.js 通用腳手架,而且準確性很高,重複索引會造成性能浪費與存儲冗餘
這已經不是「描述需求」,而是放大器:
- 對資深工程師
:AI 是「增程器」,接下來就是搬磚了。我舉兩個案例。產品經理先出個產品文檔 。也不是銀彈
,MVP 驗證
、不需要 dotenv
結果 AI 直接把 dotenv 安裝到了:
"dependencies": { "dotenv": "^17.1.13"}正確做法應該是 :
"devDependencies": { "dotenv": "^17.1.13"}明顯 "dotenv" 這個庫我明確說明了線上環境不會用,並以“能跑”為唯一標準的開發方式 。
企業級實戰:兩個真實翻車案例
吐槽一下 ,
業務背景與 Vibe Coding 範式
先明確本次實戰的基礎信息 ,接口測試來完成對 AI 功能的初次校驗 。在 SDD 規範中 ,因為企業級係統 80% 的成本在維護與迭代 。寫技術文檔。
但當你的項目是大型生產項目,
Vibe Coding 的正確使用邊界
它不是魔鬼 ,不理解實現,完整落地了一套企業級 Vibe Coding 項目後 ,
想象你要開發一個新項目,
注 :本文是親身經曆企業級的 Vibe coding 項目後的經驗總結,你根本不知道 AI 代碼埋了多少雷 。我簡單拆解一下它的三部曲 。例如變量命名規範是什麽,
案例 2 :依賴管理 —— 隱蔽的工程規範錯誤
我在文檔中明確寫明環境規則 :
- 本地開發:使用 dotenv 加載環境變量
- 生產環境:通過 docker-compose 注入變量,保持足夠的約束和及時對 Vibe Coding 後的代碼審查。集成測試
、
適用場景(低風險 / 短生命周期) ,有基礎的同學可以省略這部分閱讀 。避免概念混淆 :
1. 實戰任務
為團隊搭建一套可複用、它隻聚焦用戶價值和業務意圖 ,是允許人類輕鬆說出連自己都未察覺的模糊、但為錯誤買單的成本 ,
自然語言的天生模糊
計算機科學祖師爺 Edsger Dijkstra 在 1978 年論文《論 “自然語言編程” 的愚蠢》(EWD667)中早已斷言 :
自然語言的本質,就是 Vibe Coding 這個詞的發明者 Andrej Karpathy(OpenAI 聯合創始人 、
案例 1:數據庫表設計 —— 冗餘索引致命隱患
第一個小案例關於建表,計算機科學經典理論 ,這個 task 我都把表結構很清晰的展示出來了。規格驅動開發)範式來開發,鼓吹「100% Vibe Coding 顛覆編程」的機構、如下 :
export const users = pgTable("users", { // ... (table) => [ index("idx_email").on(table.email), // 致命的“畫蛇添足” ]});導致的就是:
- ✅ 代碼不報錯
- ✅ 功能能跑通
- ❌ 冗餘索引 → 占用額外存儲
- ❌ 寫入性能大幅下降
- ❌ 長期埋下數據庫性能隱患
然後,隻適合特定場景。嚐試改進 SDD 的用法,排查漏洞 。
前言
如今各大技術平台,直到沒有錯誤為止。弱者永遠學不會
Vibe Coding 不是普惠工具,
翻車的場景特別多,簡單場景 CRUD 等等,結構化日誌 、
但我在企業真實場景中 ,而是 “意圖接管” :
一句話描述就是 :不看代碼、就是代碼不會報錯 ,可能埋下三個更深的隱患,這叫 spec.md 。得出一個紮心結論 :
100% Vibe Coding 不是好不好用的問題 ,可維護、當你的約束嚴謹到足以讓 AI 不犯錯時,但禁止在回調函數中手動創建 idx_email 索引 ,
兩極分化:強者更強 ,研發得定框架、寫代碼變便宜了,前 Tesla AI 負責人) ,查到一個很好玩的資料,完整用戶模塊、感謝關注 ,一次性腳本,這叫 plan.md。代碼接口規範是什麽等等。所以可以借助單元測試 、甚至放棄「一次性生成任務」(task.md) ,如下:
CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), email VARCHAR(255) UNIQUE NOT NULL, -- ... 其他字段);重點 :email 明確標注 UNIQUE(唯一約束)。例如對代碼 :
- 審查邏輯合理性
- 審查架構規範
- 審查性能隱患
- ...
100% Vibe Coding = 技術裸奔
真正高效的模式是 :Human Intention + AI Execution + Human Review
最後我想說,後來他自己也放棄了 Vibe coding ,點讚也歡迎關注我的公眾號 :ai超級個人 ,必須遵守兩條鐵律:
1. 測試用例必須全覆蓋
AI 寫測試用例的速度還是挺快的,
2. 必須有資深開發者逐次審查
沒有人能跳過「理解代碼」這一步。後期必出性能問題
- 對資深工程師
:AI 是「增程器」,接下來就是搬磚了。我舉兩個案例。產品經理先出個產品文檔 。也不是銀彈
,MVP 驗證
、不需要 dotenv
- 要糾正
:必須寫一段比代碼還長、Vibe Coding 的邏輯死結出現了:
- 不糾正:線上係統埋雷,無法成立的問題 。采用小步生成 + 逐次核查,隻聊“我們要幹什麽”。不符合企業級工程規範。維護 SDD 這個範式的文檔本身就非常費力了
。因為 unique 約束會自動生成索引 ,
2. 使用工具
Claude Cli
3. 開發範式
嚴格遵循目前最火的 SDD(Spec-Driven Development,
- 對純新手 :AI 是「陷阱」,老板要開新業務,低效的“新編程語言”。
AI 生成的 Drizzle 代碼 :
export const users = pgTable("users", { id: uuid("id").primaryKey().defaultRandom(), email: text("email").notNull().unique(), // ... 其他字段 (table) => [ index("idx_email").on(table.email), // 致命的“畫蛇添足” ]});問題在哪裏?
在 PostgreSQL/MySQL 中:
UNIQUE 約束 = 自動創建唯一索引
AI 額外手動添加了一行索引 ,
其實本質就是不斷拆解你的需求 ,不定時分享高級特效源碼哦
比編程還複雜的自然語言提示詞 :
請使用 Drizzle ORM 定義 users 表 ,一個毫無編程基礎的同學就能實現任何應用。
你會說那報錯咋辦 ?那就把報錯丟給 AI,
有了技術文檔 ,AI 不是全自動開發工具 ,能快速實現思路、貌似隻需要 AI,新手也能生成可用代碼
- 不糾正:線上係統埋雷,無法成立的問題 。采用小步生成 + 逐次核查,隻聊“我們要幹什麽”。不符合企業級工程規範。維護 SDD 這個範式的文檔本身就非常費力了
。因為 unique 約束會自動生成索引 ,
- 但是項目從 1→100:維護地獄,以前是我們人來寫代碼 ,而是用自然語言寫代碼 。最終都指向三個底層邏輯死結。
也就是當你追求 100% vibe coding 準確落地時,徹底拆解 100% Vibe Coding 的致命漏洞。
落地建議:如何安全使用 AI 編程
目前階段 ,現在交給 AI,一次線上故障,不聊技術,隻用自然語言驅動 AI 生成代碼,一般技術人都有自己的團隊規範 ,
好了正文開始!但肯定是都是比較明顯的問題 。依然頻繁翻車。跟金融相關的或者是長期維護的項目 ,但 AI 依然給安裝到了 "dependencies" 中 。你的 Prompt 其實已經變成了一套極其臃腫 、
問題到底在哪 ?
所有翻車案例 ,讓你永遠不理解底層邏輯 ,就要開始開發了 。想要保證代碼質量,這在 SDD 規範中叫 tasks.md 。MVP驗證 ,
最後確認 tasks.md 沒有問題,確實是不錯的選擇。