別再吹牛了 ,g 存洞邏輯漏在無法自洽的

注:本文是别再親身經曆企業級的 Vibe coding 項目後的經驗總結 ,

業務背景與 Vibe Coding 範式

先明確本次實戰的吹牛存无基礎信息,甚至放棄「一次性生成任務」(task.md) ,法自擴展 AI 生成的逻辑漏洞混亂代碼
短期利好,修複  、别再研發得定框架、吹牛存无後期必出性能問題

  • 要糾正:必須寫一段比代碼還長、法自想要保證代碼質量 ,逻辑漏洞集成測試、别再當你的吹牛存无約束嚴謹到足以讓 AI 不犯錯時,技術棧 :

    Hono.js + Drizzle ORM + PostgreSQL

    必須包含:統一錯誤處理、法自這叫 plan.md 。逻辑漏洞

    案例 1 :數據庫表設計 —— 冗餘索引致命隱患

    第一個小案例關於建表,别再一次性腳本 ,吹牛存无企業級標準的法自 Node.js 通用腳手架 ,

    2. 使用工具

    Claude Cli

    3. 開發範式

    嚴格遵循目前最火的 SDD(Spec-Driven Development,而是在邏輯上根本無法自洽 、但禁止在回調函數中手動創建 idx_email 索引,email 字段添加 unique 約束,結構化日誌 、這個 task 我都把表結構很清晰的展示出來了 。簡單場景 CRUD 等等 ,前 Tesla AI 負責人) ,得出一個紮心結論 :

    100% Vibe Coding 不是好不好用的問題 ,從來沒有降低過。依然頻繁翻車。

    企業級實戰:兩個真實翻車案例

    吐槽一下,不符合企業級工程規範 。低效的“新編程語言”。最後對齊 ai 到底幫我們做哪些任務 。而是高級輔助工具 。感謝關注 ,但肯定是都是比較明顯的問題 。這在 SDD 規範中叫 tasks.md 。這叫 spec.md 。有基礎的同學可以省略這部分閱讀 。完整用戶模塊 、而是放大器  :

    • 對資深工程師  :AI 是「增程器」 ,不定時分享高級特效源碼哦

      必須遵守兩條鐵律:

      1. 測試用例必須全覆蓋

      AI 寫測試用例的速度還是挺快的 ,

      有了技術文檔,但是開發過程中 ,

    兩極分化:強者更強,不需要 dotenv
    結果 AI 直接把 dotenv 安裝到了 :

  • "dependencies": {   "dotenv": "^17.1.13"}

    正確做法應該是 :

    "devDependencies": {   "dotenv": "^17.1.13"}

    明顯 "dotenv" 這個庫我明確說明了線上環境不會用 ,一個毫無編程基礎的同學就能實現任何應用 。跟金融相關的或者是長期維護的項目,因為企業級係統 80% 的成本在維護與迭代。但 AI 依然給安裝到了 "dependencies" 中 。

    Vibe Coding 的正確使用邊界

    它不是魔鬼,你根本不知道 AI 代碼埋了多少雷。

    更危險的是:大型項目中,在 SDD 規範裏 ,比編程還複雜的自然語言提示詞 :

    請使用 Drizzle ORM 定義 users 表,

    自然語言的天生模糊

    計算機科學祖師爺 Edsger Dijkstra 在 1978 年論文《論 “自然語言編程” 的愚蠢》(EWD667)中早已斷言 :

    自然語言的本質 ,如下 :

    export const users = pgTable("users", {   // ...   (table) => [    index("idx_email").on(table.email), // 致命的“畫蛇添足”  ]});

    導致的就是 :

    • ✅ 代碼不報錯
    • ✅ 功能能跑通
    • ❌ 冗餘索引 → 占用額外存儲
    • ❌ 寫入性能大幅下降
    • ❌ 長期埋下數據庫性能隱患

    然後,

    也就是當你追求 100% vibe coding 準確落地時,現在交給 AI,鼓吹「100% Vibe Coding 顛覆編程」的機構 、因為 unique 約束會自動生成索引,就要開始開發了  。確實是不錯的選擇。隻用自然語言驅動 AI 生成代碼 ,

    但我在企業真實場景中,代碼接口規範是什麽等等。所以可以借助單元測試 、在 SDD 規範中交 constitution.md 。排查漏洞  。你必須用“模糊”的語言去約束一個“極其確定”的結果 。一次線上故障,

    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 額外手動添加了一行索引,不理解實現,

    這種全局性的“遊戲規則”  ,Vibe Coding 的邏輯死結出現了:

    • 不糾正 :線上係統埋雷  ,且你完全無法識別。這也是 Vibe Coding 最推崇的標準化流程  。它隻聚焦用戶價值和業務意圖 ,你的 Prompt 其實已經變成了一套極其臃腫、維護 SDD 這個範式的文檔本身就非常費力了。規格驅動開發)範式來開發 ,避免概念混淆:

      1. 實戰任務

      為團隊搭建一套可複用、

      有了產品文檔,而是用自然語言寫代碼 。它的核心邏輯不是“AI 輔助”,並以“能跑”為唯一標準的開發方式  。販賣焦慮的博主層出不窮  。

      適用場景(低風險 / 短生命周期) ,一般技術人都有自己的團隊規範  ,如下:

      CREATE TABLE users (  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),  email VARCHAR(255) UNIQUE NOT NULL,  -- ... 其他字段);

      重點 :email 明確標注 UNIQUE(唯一約束) 。貌似隻需要 AI ,也不是銀彈,RBAC 權限控製模塊等通用能力。可維護、永遠隻會「讓代碼跑通」。最終都指向三個底層邏輯死結 。

      想象你要開發一個新項目  ,

      落地建議 :如何安全使用 AI 編程

      目前階段,你用 AI 修複一個問題 ,就是代碼不會報錯 ,MVP驗證,接下來就是搬磚了 。隻聊“我們要幹什麽”。歧義與矛盾。

      最後確認 tasks.md 沒有問題 ,

      以上的案例都有一個特點,

      好了正文開始  !使用 Vibe Coding 一定要有懂代碼和業務邏輯的資深成員在 ,有趣的是在寫這篇文章過程中,完整落地了一套企業級 Vibe Coding 項目後,轉向了一個新的方向叫 Agentic Engineering。

      2. 必須有資深開發者逐次審查

      沒有人能跳過「理解代碼」這一步。

      複雜度“轉移”了,接口測試來完成對 AI 功能的初次校驗。直到沒有錯誤為止 。點讚也歡迎關注我的公眾號:ai超級個人,得先讓它把要做的事寫成任務列表,我簡單拆解一下它的三部曲 。

      其實本質就是不斷拆解你的需求 ,嚐試改進 SDD 的用法  ,

      翻車的場景特別多,例如原型,是允許人類輕鬆說出連自己都未察覺的模糊 、

      問題到底在哪?

      所有翻車案例,例如變量命名規範是什麽 ,弱者永遠學不會

      Vibe Coding 不是普惠工具,但為錯誤買單的成本,計算機科學經典理論  ,寫代碼變便宜了,

    • 對純新手:AI 是「陷阱」 ,不聊技術,在 SDD 規範中,

      本文將結合實戰翻車案例 、產品經理先出個產品文檔 。MVP 驗證、

      我嚴格按照 SDD 流程執行 ,就是 Vibe Coding 這個詞的發明者 Andrej Karpathy(OpenAI 聯合創始人 、老板要開新業務,

      前言

      如今各大技術平台,但對於長期確實災難,讓你永遠不理解底層邏輯,AI 不是全自動開發工具,查到一個很好玩的資料,原型 demo 、

      但當你的項目是大型生產項目,而且準確性很高 ,而是 “意圖接管” :

      一句話描述就是:不看代碼、

      4. vibe coding 是什麽 ?

      這個詞由前 OpenAI 首席科學家 Andrej Karpathy 帶火。隻適合特定場景 。徹底拆解 100% Vibe Coding 的致命漏洞 。而非“消失”

      Vibe Coding 最大的謊言:降低開發難度 = 消除係統複雜度.

      真相是 :AI 把「開發成本」轉移成了「維護成本」

      • 項目從 0→1:速度極快 ,例如對代碼:

        • 審查邏輯合理性
        • 審查架構規範
        • 審查性能隱患
        • ...

        100% Vibe Coding = 技術裸奔

        真正高效的模式是 :Human Intention + AI Execution + Human Review

        最後我想說,

        5. SDD 規範是什麽 ?

        為了讓大家秒懂什麽是 SDD ,重複索引會造成性能浪費與存儲冗餘

    這已經不是「描述需求」 ,

    接著理清一下 vibe coding 和 SDD 範式的概念,無法成立的問題 。能快速實現思路、寫技術文檔。後來他自己也放棄了 Vibe coding ,以前是我們人來寫代碼,一次性腳本(項目扔了也不可惜),我舉兩個案例 。可能埋下三個更深的隱患 ,

    案例 2:依賴管理 —— 隱蔽的工程規範錯誤

    我在文檔中明確寫明環境規則 :

    • 本地開發 :使用 dotenv 加載環境變量
    • 生產環境:通過 docker-compose 注入變量,沒人能讀懂、保持足夠的約束和及時對 Vibe Coding 後的代碼審查  。

      你會說那報錯咋辦 ?那就把報錯丟給 AI ,采用小步生成 + 逐次核查,

      結果咋說呢, 代碼不報錯, 項目能啟動, 但生產環境打包體積增大,新手也能生成可用代碼

    • 但是項目從 1→100:維護地獄 ,
    娛樂
    上一篇:Pretext:值得關注的文本排版引擎
    下一篇:一文搞懂 LLM 的 Transformer !看完能和別人吹一年