哈哈,先別揍我。
我知道在業界,只要有人開口講 DDD,大家的白眼就先翻一圈——「又來了,又一個喇叭嘴,說得一嘴好 code。」
但先聽我說完。
正因為現在人人都在 Vibe Coding,我反而更確信:領域驅動設計(Domain-Driven Design, DDD)會再次流行起來。
你可能會想,AI 都能寫程式了,還在講方法論?還在講建模?
先別急,讓我從還沒有 AI 的年代開始講起。
還沒有 AI 的年代,工程師最痛的是什麼?
如果你問一個資深工程師,職涯裡最痛苦的事情是什麼,答案大概不會是「功能太難寫」。
而是維護前輩留下來的祖傳代碼。
沒有文件、沒有測試、變數名稱叫 data2、一個函式八百行、改一個地方壞三個地方。而且留下這坨東西的人,早就離職了。
這個痛,痛到整個軟體業界為它發展出了一大堆東西。
物件導向、設計模式、Clean Code、測試驅動開發、各種架構方法論——本質上都在回答同一個問題:
一套會被很多人經手、要活很多年的系統,到底要怎麼設計,才不會爛掉?
痛到什麼程度?痛到連程式語言本身,都開始為這件事做設計。
Go 就是最好的例子。它的設計哲學幾乎是反著業界潮流走的:語法故意設計得很少、gofmt 直接把程式碼風格統一成一種寫法、錯誤處理囉嗦到被全世界嘲笑。
為什麼?因為 Go 是 Google 為了「幾千個工程師共同維護同一套系統」設計出來的語言。
它犧牲了寫程式的自由度,換取讀程式和維護程式的一致性。
從語言設計的層級,就已經在解「爛 code」這個問題了。
由此可知,軟體開發真正的困難,從來不是把功能做出來,而是怎麼讓一套被大量人手經手的產品,維持強健、可以一直改下去。
開發者體驗:爽,是有生產力的
在那個年代,還有一個詞叫「改善開發者體驗(Developer Experience)」。
邏輯是這樣的:
當工程師開發得爽、開發得舒服,程式品質自然就好。
品質好,大家就容易維護。
容易維護,新功能就更容易交付。
交付得快,成本就下來了。
所以團隊願意花時間整理架構、補測試、寫文件——因為「讓工程師不痛苦」這件事,最後會反映在產品品質和成本上。
痛苦,在那個年代是一種訊號。code 爛,你改起來就痛;痛,你就會想辦法把它弄好。
但是!AI 這個神兵利器出現了
再爛的 code,AI 都能改。再深的屎坑,AI 都能下去清。你甚至不用看懂那坨東西,把錯誤訊息貼給它,它就修好了。
痛苦消失了。
沒有錯——痛苦消失了,爛 code 卻還在呀。
以前爛 code 會逼你重構,因為工程師真的改不動了。現在 AI 幫你把痛全扛了,那坨東西就繼續留在那裡,繼續長大。
講得一嘴好 code,就可以交付了。
所以為什麼感覺大廠出包越來越頻繁?為什麼你在用的 App 三不五時就掛掉?
(沒有要暗指誰,我自己也正在用他們的產品 🤭)
當然,這不是 AI 的錯,比較像是時代轉變必經的副作用。而且我覺得,我們正站在一個很重要的節點上。
與其拿這些副作用當理由,嘲笑 Vibe Coding 終究只能做 demo、做玩具,不如認真想想怎麼把握它。我自己也還在摸索,但至少想先看清楚一件事:
這波浪潮,到底改變了什麼?
當 coding 變便宜,貴的東西換了
在這波浪潮裡,大家看見的是四個字:降本增效!
沒有啦,我的意思是:寫出能動的程式,第一次變得這麼便宜。
以前一套架構要打磨半年,現在丟給 AI,用零頭的時間就能做出水準不輸、甚至更好的東西。
但注意喔,我說的是「能」,不代表你也辦得到。
辦不辦得到,要看你餵給它什麼。
丟一句模糊的需求進去,它就回你一坨能跑的東西——老話一句,garbage in, garbage out。
欸不是,我沒有說你的需求是 garbage 啦 🤣 問題不在需求本身,而是需求和程式碼之間,少了一層「把規格落地的架構」。大部分人的 Vibe Coding 流程,缺的就是這一塊。
反過來說,如果你給 AI 的是一套完整的設計——模組怎麼切、邊界在哪、什麼歸什麼管、規則寫在哪一層——它就能照著蓋出結構紮實的系統。
講到這裡應該很清楚了:當 coding 本身不再是成本,真正值錢的,是軟體開發的方法論。
好笑的是,這些方法論根本不是什麼新東西,教科書上印了幾十年。以前我們不照著做,不是因為它不對,而是因為太貴——建模要時間、分層要時間、把邊界切乾淨要時間,老闆等不了。
現在呢?執行的成本直接崩跌。
ok,再也不能拿「最佳實踐成本太高」當藉口了喔~
而 DDD,是一整本武功秘笈
在所有方法論裡面,我認為領域驅動設計(DDD)會是 AI 時代的那一套主流。
因為 DDD 不是單一招式,它是一整本武功秘笈——
有心法:先搞懂業務領域,讓程式的語言跟業務的語言一致。
有身法:怎麼切分邊界、怎麼讓每個模組只管好自己的事。
有拳法:實作層的各種戰術招式,聚合、實體、值物件、領域事件。
從「怎麼理解問題」到「程式碼怎麼寫」,一路打通。而這一整套產出的東西——模型、邊界、規則、語言—— 是不是正好就是 AI agent 最需要的 context?
不過,DDD 到底是什麼?這套東西到底在講什麼?這個坑太大,下一篇再來好好挖。
我們沉澱一下! 下篇見。



