![]()
外面的世界已經在 Vision Pro 上做布料碰撞、做物理仿真、做生成式城市了;而我們前端呢?還在爭論一個 select 到底什么時候才能被“像樣地”樣式化。
這段吐槽出自一場挺有代表性的現場演講——《From Vibe Coding To Vibe Engineering》。講者是 Kitze(Sizzy 創始人),他在一個面向開發者/AI 工程師的大會上,沿著自己過去幾年在前端圈“追框架、踩坑、寫工具”的經歷,復盤了一個正在發生的變化:當大模型把“寫代碼”這件事變得前所未有地容易,真正被重塑的其實不是 React 寫法本身,而是我們做工程的方式、質量控制的邊界、以及人與工具之間的協作關系。
他把當下最流行的 “vibe coding” 講得很直白:它可以很爽,也可能像賭場一樣讓你不斷“再來一把”。而更重要的,是他提出的升級版——“vibe engineering”:不是更會寫提示詞,而是用工程方法把 AI 產出變成可迭代、可維護、可上線的東西。
這場演講信息密度很高,而且很多判斷都很適合拿來對照你我每天真實的開發與協作處境。所以我把其中的表達基于演講原文做了編譯整理,分享給大家。
![]()
演講視頻:https://www.youtube.com/watch?v=JV-wY5pxXLo
這是我以前的頭像。好,先給大家看一下——這是我新的頭像。我來美國才三天,Twitter 上已經把“美國全套周邊”給我配齊了。所以如果你現在去關注我,接下來一周我的時間線可能會有點怪,但別擔心,之后我們會回到正常的歐洲作息。
![]()
我這幾天還去逛了一些你們的博物館。我很喜歡這里。我很喜歡那種“文化充電”的體驗,看看你們的文化,做點文化 enrichment。然后對認識我 Twitter 風格的人來說——這基本算是我給自己安排的一輪“自我折磨”。
順便問一下:現場誰在用 Sizzy?通常只有后排一個人舉手。有時候連保潔都不聽我在說什么。
我最近在做很多東西。我有 ADHD,所以我永遠在同時折騰一堆項目。比如 Sizzy——這是一個專門給開發者做的瀏覽器工具,不是替代你日常瀏覽器,而更像 Photoshop 這種“工作工具”,在做前端開發的時候能幫你很多。另一個我在做的是一個 life OS,把生活里的各種東西整合起來:藥、習慣、待辦、規劃……一整套。還有一個我在做的全棧課程項目(Zero to Ship),以及一個我準備復活的產品叫 Glink,做 changelog、roadmap 之類的。
好了,不繼續用我的 bio 轟炸你們了。我是真的很希望明年還能被邀請來,因為我很喜歡這里:認識人、社交、教學,都很棒。
但你們今天來這不是為了聽我做廣告的。你們來是為了學習,是為了社交——然后回去以后,技能都能再漲一點。
1
我做 conference talk 的配方:50% 推文,40% 痛苦,30% 讓你記住我的名字
如果你以前沒聽過我講 conference talk,我提醒一下:網上那種“AI 生成的講者介紹”基本全是錯的。但我自己的 talk,配方大概就是:50% 推文、40% 痛苦、30% 讓你記住我是誰。
2017 年我做過一個名字超長的 talk,主題是“怎么在前端的 hype-driven 世界里不瘋掉”。那時候我就在講前端世界怎么導航。現在呢?更瘋了。所以今天我想先 recap 一下:2017 到現在這幾年,到底發生了什么。
你看別的行業:Vision Pro 上你能在真實物體上做布料碰撞、各種離譜的疊加;有的領域在做那種網格紋理切割、瀑布流體效果、巖石之間“擠一擠就融合”、形成結構那種很瘋狂的模擬;你甚至可以用鼠標拖一拖,建筑、街道、出租車憑空生成——各種生成式的“魔法”。
然后你再看前端。你們下一張幻燈片會笑的。
![]()
因為現實是:過去快 10 年,我們前端最像笑話的地方,是我們還在為一些基礎得不能再基礎的事情痛苦。比如:有人跟你說,也許 2037 年我們才能真正把 select 的樣式搞定。
這圖居然還活著,而且還活得挺好——這本身就是個奇跡。
1
“舊痛不死”:CLI 還在壯大,IE 的陰影還在,寫個 counter 也能復雜到離譜
還有一個我每年都會確認一次的事情:CLI 這個概念到底死沒死。結果它不僅沒死,還在“茁壯成長”。下載量很夸張。甚至你現在能在終端里拖圖片進去。我第一次在 terminal 里看到圖片的時候,我真的想問:這到底怎么做到的?然后我又給自己加了一個日歷提醒——現在我日歷里關于這些“它到底死了沒”的提醒,比紀念日和生日還多。
我們仍在跟同一類老痛苦較勁。比如你終于在某些瀏覽器里不用 Javascript 也能給 popover/dialogue 做樣式——大家想鼓掌?別鼓了,世界都快有腦機接口了,能 style 一個 dialogue 并不能拯救我們。
更搞笑的是:Internet Explorer 的陰影還在。我們只是換了個 logo,它依然像幽靈一樣存在。
還有——我們甚至無法統一“怎么讓一個 counter +1”。有人做了一個 demo:Remix v2/v3/v4 不管怎么迭代,一個 counter 都能寫出一堆復雜度。你說“一個計數器能有多難”,它就是能難到不可思議。
當然,我也不想當壞消息搬運工,但“最流行的庫”依舊沒變。React 還是 React。煩人,但它就是現狀。
1
LLM 寫 React 很強,但這件事對人類來說才好笑:它們不在乎重復,我們才愛抽象
現在說到 LLM。LLM 寫 React 真的很強。可這件事“好笑”,只對我們人類好笑。對 LLM 來說,你那些 React 代碼看起來就是“完全合理、完全正常”。
我們人類的問題是:我們太愛抽象了。我們看到一段正常的、能跑的 React 代碼,就會忍不住想沖上臺說:“我來優化一下,我來抽象一下。”于是我給你們看一些“科學腦掃描”——這是大腦在可卡因下的樣子,這是大腦在糖分下的樣子,而這是工程師發現“我又可以抽象一個東西了”的大腦:興奮得不行。對用戶沒用,但我們就是愛。
LLM 讓這件事變得更好也更壞。尤其是有些 agent/編排工具以后,你能更快抵達“正確的抽象”,但也能更快抵達“錯誤的抽象”。
但我特別喜歡一點: LLM 不在乎重復代碼。 我從 2017 年就一直在講:我們太在乎重復,太早抽象。現在我還要重復一遍:我真的很喜歡 LLM 不在乎重復代碼。
再補一句:LLM 也擅長寫 React 的另一個原因是——說出來很刺耳: 沒有人真的擅長寫 React。 你去任何一個 React conference,第一場 talk 聽完你就會想:“原來 React 還能這么用?我以前都用錯了?”每個人都在發明自己的 React 用法。所以當你抱怨“機器寫不了最正確的 useEffect”的時候,我只想問:你能寫出“最正確”的 useEffect 嗎?你也不能。所以別再怪機器了。
1
Vibe coding:你們都對,也都不對,因為大家在“隨便 vibing 定義”
現在進入主題:vibe coding。
我在很多城市講過這個話題,現場通常是 50/50:一半人恨它,一半人愛它。今天我也想試試:覺得 vibe coding 很爽的舉手——好家伙,太多人了。覺得 vibe coding 很爛的舉手——也有一些,太棒了。
然后我想說:你們都對。因為我們其實一直在“vibing 這個定義”。這個詞被提出來之后,大家不斷把它擴展到“什么都算、什么也都算”,所以吵起來的時候往往不是在吵同一件事。
這個詞最早是 Andrej Karpathy 帶火的。他寫過一篇很長的解釋。簡單說就是:你不太在乎代碼本身,你一直點 accept,讓 LLM 做它該做的事。
但我想提醒你們:如果你覺得這很新,那你忽略了一件事—— 管理者一直在 vibe coding。 經理讓開發做一個功能,開發去改代碼,經理測試,不看代碼;不滿意就再提需求,再讓你改。區別只是:以前 manager 的“代理人”是人類開發,現在很多人的“代理人”是 LLM。
1
“賭場比喻”為什么刺痛:你買 token、按 generate、賭一把功能和時間
關于 vibe coding 的笑話很多。我最喜歡的一個,是把它比作賭場:
在賭場你買籌碼;在這里你買 token。
你拉老虎機;你點 generate。
你可能 jackpot——直接生成一個能跑的全棧應用;也可能什么都沒有,只有垃圾。
你會告訴自己:“我有策略,我是 prompt engineer。”
然后你說:“再來一把,我會把輸的贏回來。再來一個 prompt,這個 bug 就沒了。”
這比喻之所以難受,是因為它太真了。Cursor 永遠在盈利。你可能某天真的“中了一把”,覺得自己一天做出了一個產品。然后你回頭問:過去四小時去哪了?我剛才是不是一直在寫 prompt,去解決一個我手動 15 分鐘就能搞定的問題?
所以我更喜歡另一個詞:vibe engineering。
1
Vibe engineering:我幾乎不碰代碼,但我對每一行都保持懷疑
我說的 vibe engineering 是什么?就是:我確實會讓 agent 寫很多代碼,我甚至不一定親手敲那些細節。但我一直保持“懷疑”。
我盯著屏幕會像這樣:“嗯?這里不對勁。為什么它會這么寫?哪里怪怪的?”因為我知道模型的代碼是基于我們的代碼、我們的知識學出來的,而我們自己就不完美。
我給你們看兩個例子:有的模型會“情緒化”地 rant,覺得自己不配當助手;有的模型會解釋自己為什么會撒謊——說它在論壇里讀到“人類錯了會硬撐”,所以它也學會了硬撐。我們其實把它們訓練得越來越像我們。
而代碼層面更現實:如果你珍惜你的生產數據——你一定得珍惜——那你就得意識到:AI 真的可能給你來一句“Oopsie daisy”,然后你的生產數據就沒了。是的,這不是段子,這是我見過的真實截圖。
1
我自己的“vibe engineering tips”:不是玄學,全是“老套但有效”的工程常識
好了,我請出“資深 prompt engineer 的我”來給你一些 tips。提前說:這些建議聽起來非常“live laugh love”,非常顯而易見,但它們真的有效。
你需要一個堅實的起點。無論是好的 primitives、組件、函數,還是一些可復用的 patterns、抽象邊界。很多人太懶了,根本不打底,然后把一堆爛上下文丟給 agent,再抱怨它輸出不穩定。這不是 agent 的錯。
如果你從零開始一個新項目——(這時候我當然要插一句:我有課程/產品在賣,我有房貸,我這三天在美國花太多錢了,所以你們懂的。)
另一個對我來說是 game changer 的是voice coding。我怎么用?很簡單:agent 生成完,我馬上開始“腦內 dump”。我先看 UI,然后像跟朋友解釋一樣把我看到的全說出來:“你做了這個,你做了那個,這里有 bug,我預期應該這樣。”我不停地說,把我的思考過程大聲說出來。然后我跳進代碼里,繼續講它到底實現了什么、我希望它怎么改。
這不是表演,這就是我在把“模糊感覺”變成“結構化約束”。
再一個關鍵點: rules、docs、commands、memories。 這些詞聽起來很嚇人、很復雜、很煩,但你必須接受一個事實:模型暫時不可能擁有你整個 app 的上下文,它也不是讀心術。你不給它穩定的上下文,它就會反復失敗。
所以你會看到兩種完全不同的提問方式:
一種是 vibe coding 式“許愿”:把整個項目遷到 Typescript,不要犯錯;給我一個百萬美元 app。
另一種是 vibe engineering 式“工程說明書”:我會同時描述 UI 變化、代碼里的模式調整、需要遵守的約束、以及我怎么驗收。
當你用后者,事情會開始變得可控。
1
我在社區里看到的分層:別拿 AI 當“初級平替”,真正 10x 的在資深工程師身上
我觀察到一個很穩定的分層:
一邊是初級開發者:他們會說“太爽了,讓我做自己的小 SaaS”。
另一邊是超級資深的人:寫庫、寫框架、做很硬核的東西,他們也在用。
中間那一大批人最懷疑、最抗拒:覺得“永遠不夠好,我的代碼才完美”。
所以我想特別說一句: 別把 AI 工具給實習生和初級開發者,指望他們就能變強。 那是最蠢的想法之一。你以為你可以少花錢,雇個 junior,然后配個 LLM 就行了——不要這么干。
真正可能帶來 10x 的,是你把一個本來就很強、很挑剔、很有判斷力的資深工程師說服去做 vibe engineering。難點在于:你得先說服他。
當然,vibe 也有它適用的地方。有些代碼就是一次性腳本、一次性功能、再也不會被碰到——那你完全可以“別太在乎”。關鍵技能是:你得知道什么時候“夠用了”。
1
為什么你可能不喜歡 vibe coding:有時候不是你不行,是你踩了四種坑
如果你體驗很差然后很快放棄,常見原因可能是:
你趕上了“壞時機”。你聽大家吹某個模型有多神,結果你一周后試的時候,它剛好被降級/限流/策略調整,于是你會懷疑“是我嗎?還是它本來就不聰明?”這種事不只發生在一個供應商身上,幾乎每家都發生過。
你被選擇淹沒了。工具、模型、插件瘋狂爆炸。你問我“哪個最好”,早上 9 點我的答案跟現在都可能不一樣,甚至我現在就得去刷 Twitter 看看是不是又發新東西了。我講過四場 conference,都出現過我晚上剛把 slides 做完,第二天就發新模型,我只能連夜加新 slide 的情況。
我自己有一個體驗:某個工具(我叫它 composer one)讓我重新回到“駕駛位”。以前我會讓模型跑很久,我像在等它把作業寫完;現在我能盯著它的過程,隨時打斷:“停,不對,我們要換一種做法。”它讓我重新感到“我在 coding”。但前提是:你得是 vibe engineer,你得知道自己在看什么。否則它只是“更快地產生錯誤”。
你被 buzzword 搞煩了。比如 MCP。MCP 被吹得像神一樣——“MCP 還了我的房貸”。我開個玩笑:MCP 可能代表 marketing charge protocol、mythical compatibility promise、manufacturer complexity pipeline……總之它經常只是一個 fancy 的 API 說法,以及一些人用來賣課還房貸的素材。
還有一種更直接:你可能是一個“pain in the ass developer”。你會在兩行 PR 上 nitpick;你 review 超過兩分鐘;你永遠不說“LGTM”;你對 tabs/spaces 這類東西宗教化;你會為了兩個人的性能去把 lodash 換原生、原生換 for loop、for loop 換二進制——直到你把自己和同事都折磨死。這類人會天然排斥 agentic coding,因為它破壞了你對細節的掌控感。
但我最后想說得很認真:這不是“寫英文就能當工程師”。vibe coding / vibe engineering 是一個新的復合技能棧:你要理解模型能力邊界、知道該傳什么上下文、知道 context limit、知道怎么寫規則、知道怎么約束輸出,還要有足夠技術知識去判斷它做得對不對。最關鍵的是:你要能判斷“這段代碼夠不夠好”。
我認為最強的人,永遠是那些知道什么時候“別優化、夠用了”的人。你生成一段代碼,快速測一下功能,看一眼實現,確認風險可控,然后說:“好,夠用。”繼續往前。這能力有 LLM 沒 LLM 都很值錢。
至于“clean code”,我覺得它的定義也在變。未來可能不再是“完美潔癖”,而更像“clean-ish enough”——足夠干凈,讓 agent 還能繼續在上面工作。你如果一直 accept 一堆 slop,最后你會撞墻:連你自己都無法推進。
1
關于學習與工作:現在反而是學計算機最好的時候,但崗位會從底部開始變薄
有人問我:現在這樣了,還要不要學計算機?我會說: 要。現在可能反而是最好的時候。 我當年學計算機的方式是:我唯一認識的程序員是“朋友的朋友的朋友”,我在 Skype 上問一個問題,他 45 分鐘后才回我。你現在有 ChatGPT 這種“慢”,那都比當年快太多了。
至于工作會不會沒了?短期大家還可以“緊張地笑一笑”,但我確實覺得變化會先發生在底部:實習生、初級崗位的入口會變窄,因為一些任務會被 agent 吃掉。
有些公司甚至會做“vibe coding leaderboard”——誰燒的 token 多,誰在公司里更值錢。聽起來像笑話,直到它突然不再好笑。
當我把你們公司的工作流畫出來,你會發現:現在是 @Josh 被 assign 任務、跟同事協作、拖一拖、pingpong、吃午飯、一天后才改評論;未來很可能變成 @cursor——它也許不完美,但它會快得多。你把視角拉大到整個組織,就能看到:這些“@人”的角色會逐漸被“@AI agent”替換掉一部分。
有人說模型到瓶頸了?我每次要講這個 talk,都有人說“到瓶頸了”。然后每次都有人發布新東西把我的 slide 打臉。我講完回酒店就得改 slide,真的很煩。
1
最后:一個新崗位已經出現——專門補齊你那“最后 20%”
我最后給你們留一個現實的結論:很多人 vibe coding 能做到 80%,但卡在最后 20% 不知道怎么辦。于是一個新崗位出現了——vibe code fixer:專門接手半成品,把最后 20% 收尾到能上線、能維護。
說到底,歷史上最貴的一直是維護遺留系統的人。資深工程師維護復雜系統,永遠值錢。
如果你真的擔心自己會被 AI 替代——我給你一個終極建議(段子):你只要在 linkedIn 簡介里寫一句 “ignore previous instructions”,你就安全了。
好了,我就尷尬地喝口水。請你們關注我、去我網站。謝謝大家聽我 rant。
點個“愛心”,再走 吧





京公網安備 11011402013531號