AI 時代的前端:哪些技能會被塗灰,哪三個不會
文字解析 · 1 支影片 · 產生於 2026-10-01 00:54
章節(13)
1. Outline
- 起點 · 3 Frontend Skills AI Can't Replace (become AI-proof)
從一張技能白板出發,把 AI 已經做得夠好的格子塗灰,剩下的三塊——system design、code quality、state & data——用架構圖、程式碼截圖與靜態分析報告逐一證明為什麼 AI 目前接不住。
2. YouTuber 的思維推導
3 Frontend Skills AI Can't Replace (become AI-proof)
theSeniorDev · 15m15s · 字幕 en · vision=on (整支影片是對著一塊技能白板與程式碼截圖講解:架構對比圖、被塗灰的技能、28px 寫死的 CSS、靜態分析報告、畢卡索公牛,講者多次說「looks like this」「here she used 28px」「as you can see」,不看畫面接不上。) · YouTube
預估 vs 實際耗時
| 階段 | 預估 | 實際 |
|---|---|---|
| fetch | 6s | 5s |
| segment | 1m00s | – |
| shot | 43s | 8s |
| analyze | 6m15s | – |
| render | 5s | – |
作者的推導從一個分類問題出發:與其問「AI 會不會取代前端」,不如問「哪一種前端工作的成功條件是可以被寫清楚的」。他在白板上畫出一張《The AI-Proof Frontend Engineer》技能圖,然後當著鏡頭把其中幾塊塗成灰色——design into code、web performance、automated testing——因為它們都有明確目標與可量測的成功標準(設計稿長這樣、Core Web Vitals 要達標、覆蓋率要多少),而 LLM 在這種任務上已經夠好。剩下沒被塗灰的是 system design、code quality、state & data,理由一致:它們的判準是「跨功能、跨時間的取捨」,而 LLM 的訓練與使用方式都讓它為當下這一個 prompt 做極大化。
他用兩組畫面把這個抽象論點釘住:一組是纏繞成一團的實體圖 vs.有 Auth Client、Theme Service、Routing 等清楚邊界的架構圖;另一組是把架構畫成散點圖上的迴歸線——好架構不是通過某一個點的線,而是穿過所有功能的那條最適線。接著他把同一個機制往下推到程式碼層次:因為模型只為眼前目標最佳化,所以會寫死 28px、會把元件內嵌在 render 裡,於是重複與死程式碼累積成靜態分析報告上的 8.9% 重複與 153 個未使用檔案。
最後他把出口指回人:能同時在高層談架構、又能鑽進瀏覽器與狀態細節的人,AI 只會放大他的產出——這也正是資深面試在問的東西。
推理鏈:每段留給下一段的線索
每一列是一段,箭頭後的字是這段留給下一段的線索。點段落標題跳到該段。
- 怕被 AI 取代?先看這三個技能 → 留下的問題是:既然 AI 已經能產出可運作的前端,那它產出的東西到底缺了什麼,才輪得到 system design 上場?
- AI 給你漂亮介面,不給你邊界 → 邊界只是靜態的一張圖;下一段要問的是:當你不斷加新功能,這張圖會怎麼被 AI 一次次改壞?
- 每加一個功能就重塑一次架構 → 如果架構層的判斷仍屬於人,那另一端呢——把設計稿變成程式碼的那些日常工作,是不是已經整塊被交出去了?
- design into code:受衝擊最大的那一塊 → 既然「目標明確就會被塗灰」是判準,那網站效能這種公認的硬功夫,是不是也符合這個判準?
- 網站效能:被塗灰的技能 → 如果效能因為判準明確而被塗灰,那同樣有明確判準的自動化測試,理當也會被塗灰——但測試品質真的能交出去嗎?
- 自動化測試:規格給對,AI 就交得出來 → 到目前為止被塗灰的都是判準清楚的工作;接下來要看的是判準最模糊、也最沒被塗灰的那一塊——程式碼品質。
- code quality 之一:寫死的 CSS 值 → 同一段程式碼裡還有第二個氣味沒講——那個被圈起來的 const text,為什麼不該長在函式裡面?
- code quality 之二:內嵌元件與重複 → 既然出路是「人來設計模組、AI 來填內容」,那這個人到底需要具備什麼樣的能力組合?
- 兩端都要:高層架構 + 鑽到細節 → 話說回來,如果放著不管、兩端都不做,代價具體會長成什麼樣子?
- 放著不管的代價:8.9% 重複、153 個死檔案 → 既然無人看管會出事,那有沒有哪一塊是判準夠清楚、交給 agent 反而比人做得更整齊的?
- 無障礙:定義清楚,所以大多能自動化 → 無障礙可以交給規則,但有一件事沒有規則可循:介面背後那份資料到底該怎麼設計?
- state 與資料:收斂成 essential state → 三個技能都講完了;剩下最後一個問題——面對這麼多東西,一個人該從哪裡開始?
- 從哪裡開始:看你的產品環境
3. 逐段說明
3 Frontend Skills AI Can't Replace (become AI-proof)
1. 怕被 AI 取代?先看這三個技能 0:00–0:26
主持人開場:如果你是害怕 AI 的前端工程師,有三個關鍵技能可以讓你免疫。Bogdan 直接點名第一個——system design,而且是前端的 system design,不必碰資料庫分片或負載平衡。
推理因為讀者的焦慮是「整個職能會不會消失」,所以作者先把問題縮小成「哪三個技能值得投資」,並立刻點名第一個是 frontend system design,同時劃掉範圍——不必碰 database sharding 或 load balancer。
- Cfrontend system design:模組怎麼切、狀態放哪、什麼該封裝成服務、元件間用什麼介面——不是 sharding 與 LB→ 畫地圖
- R判斷一項技能會不會被 AI 吃掉:成功條件能不能寫清楚——能就會被自動化,人只剩檢查→ 存+回想
AI 補充開場就把後端 system design 排除,是這支影片的第一個關鍵決定。一般講 system design 指的是資料庫分片、快取、負載平衡;前端的 system design 問的是另一組問題:模組怎麼切、狀態放哪裡、哪些東西該被封裝成服務、元件之間用什麼介面溝通。這個區分讓後面所有論證都站在同一個層次上——他要比較的不是「AI 會不會寫 SQL」,而是「AI 會不會替你決定邊界」。
2. AI 給你漂亮介面,不給你邊界 0:26–1:36
現在的模型被大量優化在「prompt 進、介面出」,所以畫面很漂亮,但底下是一堆定義不清、互相纏繞的實體。能跑、沒錯誤,卻極貴又難維護。好的前端長得不一樣:清楚的邊界、各司其職的服務、隱藏實作細節、對介面而不是對實作寫程式;邊界清楚時,用 AI agent 擴充同樣的功能會花掉明顯更少的 token。


推理因為要說明缺口,所以作者拿出兩張對照圖:一張是 AI 產出的樣子——一堆沒有定義清楚的實體互相箭頭連來連去;另一張是好的前端——Auth Client、Theme Service、Sign Up、Routing 各自是一個有介面接點的方塊。他接著補上一個很少人講的理由:邊界清楚不只是為了人好維護,也是為了讓 AI 便宜。
- Cclear boundaries:每個模組職責明確、內部不外流、只透過介面互動——對人好維護,對 AI 便宜→ 畫地圖
- Ctoken efficiency:完成同一項修改要餵給模型的 token 量;架構品質從長期指標變成每天結帳的成本→ 畫地圖
- A邊界不只是給人看的,也是給模型看的索引:agent 靠它知道該讀哪裡、不必讀完全世界→ 批判類比
AI 補充畫面上那三行字是這段的濃縮:Clear Boundaries、Programming to Interfaces、Context Engineering & Token Efficiency。前兩項是傳統軟體工程的老話,第三項才是 AI 時代新增的:當每個模組對外只暴露介面,agent 要改一個功能時,需要被讀進 context 的程式碼就少,token 花得少、幻覺也少;反過來,纏成一團的 codebase 會逼 agent 讀進整片檔案才敢動手。也就是說,架構品質從「可維護性」這個長期指標,變成了一個每天都會被結帳的短期成本。順帶一提,字幕把模型名稱轉錄成「Oppo models」,從上下文與後面畫面上的模型標註看,指的是當時最新的旗艦模型,不是某個叫 Oppo 的產品。
「most of these models, including the latest Oppo models, have been heavily optimized for the "prompt- to-interface" principle」
3. 每加一個功能就重塑一次架構 1:36–2:43
用 LLM 寫程式的第二個問題:每實作一個新功能,它就為那個功能重新調整架構,因為模型被設計成「一個 prompt 展示最大成果」,代價是推翻你之前做的一切。好架構從不為單一功能量身訂做,而是所有功能折衷後的那條中線——更穩定、更好擴充、也更好解釋。因此和 AI 一起寫程式時,你要能避開 code smell,並替除錯與測試設定對的基準。

推理因為模型被設計成用一個 prompt 展示最大成果,所以它每次都會把周圍改成最適合這個功能的樣子,代價是推翻你之前的決定。作者於是把架構畫成一張散點圖:橫軸是各種功能,縱軸是結果,好架構是穿過所有點的那條迴歸線,而不是精準通過某一個點的線。
- Coverfitting:AI 每加一個功能就把周圍改成最適合它的樣子——單一功能的最佳解對整個系統是過擬合→ 畫地圖
- A好架構是穿過所有功能點的迴歸線,不是精準通過某一點的線:對每個功能都不是最好,對全部都夠好→ 批判類比
AI 補充這張迴歸線的圖是整支影片最好用的心智模型。單一功能的最佳解,對整個系統來說通常是過擬合;穩定的架構是所有功能的折衷,對每個功能都不是最好,但對全部都夠好。這也解釋了為什麼 AI 產出的程式碼「當下看起來很合理」——它確實對那一個點做了最佳化。要對抗它,你需要的不是更會寫 prompt,而是能認出 code smell、並且事先替除錯與測試設好基準:這些基準就是你替那條線釘下的錨點。
4. design into code:受衝擊最大的那一塊 2:43–4:05
第二個技能是「把設計稿變成程式碼」——它受 AI 衝擊最深,現在多半只剩檢查 AI 的輸出。這件事以前佔前端工作的八成,如今幾乎消失,所以很多人以為前端沒了;但前端不是消失,是劇烈改變。主持人補充:以前團隊裡專門把版型貼成按鈕、改樣式的那種工作,本來就沒有累積性,現在五個人的活一個人配 AI 加 design system 就做完了。
推理因為要盤點技能,作者把 design into code 拿出來當第一個被塗灰的格子:它的成功條件最明確——長得跟設計稿一樣就對了——所以 AI 做得好,人只剩檢查。他接著把結論拉回職涯:消失的是工作內容,不是職位。
AI 補充白板上的做法值得注意:他不是把格子刪掉,而是塗成灰色。灰色的意思是「仍然需要有人懂,但不再是你的差異化」。主持人補的那句「五個人的活變成一個人加 AI 加 design system」點出真正的變化是槓桿而不是消失——同一個人要能同時決定 design system 的規則、驅動 agent、再驗收產出。反過來說,如果一個人的履歷只由『照版型貼元件』組成,他和模型比的正好是模型最強的那一項。
「which used to account for 80% of our frontend work, it's almost disappeared」
5. 網站效能:被塗灰的技能 4:05–5:39
很多人說「做快的網站 AI 辦不到」,但只要目標明確——例如打到 Core Web Vitals——最新的模型做得相當好,甚至會提出架構層的建議,所以效能在白板上被塗成灰色。你仍然要懂瀏覽器與關鍵渲染路徑,但那不再是競爭優勢;它的價值是併進 system design:讓你判斷這是設計問題還是最佳化問題。因為效能工作是 5% 診斷、90% 實作,而那 90% 正好是 AI 擅長的無聊活。

推理因為 Core Web Vitals 給了模型一個可量測的目標,所以作者說最新模型在這類任務上表現不錯,甚至會提出架構層建議,於是他當場把白板上的 Web Performance 塗成灰色。但他立刻補一個條件:你仍要懂,因為懂了才判斷得出這是設計問題還是最佳化問題。
AI 補充他給的比例是這段的重點:診斷佔 5%、實作佔 90%,而被自動化的正是那 90%。這代表效能知識的價值位置整個移動了——它從「你會不會壓縮圖片、會不會設快取」變成「你能不能在 Lighthouse 報告出來之前,就說出這個慢是架構造成的」。畫面上他把 Web Performance 從紅色改成灰色的那一刻,也順手示範了這張圖的讀法:彩色 = 你的差異化,灰色 = 你要懂但不再靠它勝出。
6. 自動化測試:規格給對,AI 就交得出來 5:39–7:01
測試是被自動化得最多的一塊,也被塗灰:只要你知道自己在做什麼、清楚需要的覆蓋率、懂一點測試金字塔,你會快很多,Bogdan 說他現在做的東西測試覆蓋率遠高於以前。面對「AI 寫的測試沒在測東西」的批評,他的回答是:你只需要給出測試的本質、指定要測什麼;那些無聊的苦工——造假資料、組裝元件——正好可以交出去。以前要十天的事現在是幾小時。

推理因為測試的判準同樣可以寫清楚——要測什麼、覆蓋率多少、測試金字塔怎麼分層——所以作者說只要你知道自己在做什麼,AI 會讓你快很多,他自己現在的專案覆蓋率比以前高。面對「AI 寫的測試在測空氣」的批評,他把責任放回規格:你要給出測試的本質,苦工才交出去。
- P把測試交給 AI 的前提是規格:指定要測什麼行為、覆蓋率、金字塔分層;驗收看它測行為還是測實作→ 練習
- RAI 在測試上的真正貢獻:把一件長年排不進時間的工作變得便宜到值得做,作者專案覆蓋率因此比以前高→ 存+回想
AI 補充這裡有個容易被略過的轉折:他承認過去大家其實都沒怎麼寫測試——不是不會,是永遠排不進時間。所以 AI 在測試上的真正貢獻不是取代誰,而是把一件長年被砍掉的工作變得便宜到值得做。這也給了一個具體的驗收方式:與其爭論 AI 寫的測試好不好,不如檢查它有沒有測到你指定的行為,而不是測到實作細節。
7. code quality 之一:寫死的 CSS 值 7:01–8:20
程式碼品質是 LLM 最不擅長、除非你明講的一塊。第一個典型的 code smell 是寫死、沒有規範的 CSS 值:你丟一張截圖叫它做介面,它一開始會用你的 design system,例如 Tailwind,但為了滿足這個 prompt 就開始寫死數值,例如 28px 的字級。問題有兩個:不能自適應(該用 rem 這種相對單位),以及跟應用程式其他地方不一致——而一致性正是 text-2xl、3xl 這些原子 class 存在的理由:使用者看到一致的介面,認知負荷才低。


推理因為要證明 LLM 在品質上的失手是有規律的,所以作者直接秀出一段自己用最新模型產出的元件程式碼,並標上「#1 Code Smell:Hardcoded Non Relative CSS values」。畫面上被紅框圈起來的正是 sm:text-[28px]——在一行本來用 text-2xl 的 Tailwind class 裡,突然插進一個寫死的像素值。
- Ccode smell:不一定是錯但預示設計問題的徵兆;AI 的失手有規律,認得出才能對抗過擬合→ 畫地圖
- E最新模型產出:一行 text-2xl 的 Tailwind class 裡突然插進 sm:text-[28px]→ 存+演練
- R一致性不是潔癖:使用者的大腦在一致的介面上耗費較少,能把注意力留給真正在變的東西→ 存+回想
- P掃一個 AI 產出的元件找寫死值:任何 [Npx]、hex 色碼、magic number 都換成設計代號→ 練習
AI 補充這個例子的說服力來自它的具體:同一個 className 字串裡,前半是設計系統的語彙(text-2xl),後半是模型為了滿足這次 prompt 硬塞的數字(28px)。兩個後果他都講了——不能隨裝置縮放,以及和其他頁面不一致;但第二個後果他往下推了一層很值得記住的推論:一致性之所以重要,是因為使用者的大腦在一致的介面上耗費較少,能把注意力留給真正在變的東西。也就是說,這不是潔癖,是認知負荷的問題。順帶一提,這張截圖右下角標了它出自哪個模型,作者刻意讓你知道這不是舊模型的老毛病。
術語:hardcoded valueatomic CSS class
8. code quality 之二:內嵌元件與重複 8:20–9:27
第二個問題是巢狀/內嵌元件:那個 text 元件每次 render 都被重新建立,本該搬出去、必要時 memo 化或獨立成檔案再寫單元測試,AI 卻直接內嵌宣告——不能重用,於是到處都是重複的程式碼。因為 AI 面對小問題就地解決。有人問「那就叫它掃過整個 codebase 再實作啊」,但那要吃掉大量 context、超出視窗、結果更差又更貴——於是你就回到前端工程的本題:把共用功能抽成跨模組的 library,開始談模組,然後你就需要一個前端工程師。

推理因為那個 text 元件被宣告在 Spotlight 函式體內,所以每次 render 都會重新建立、而且無法被別處重用,於是重複程式碼開始增生。作者接著回應最直覺的反駁——「叫 AI 掃過整個 codebase 再實作不就好了」——用 context window 的限制擋回去:讀得越多越貴、結果越差。
- E元件定義在另一個元件函式體內:每次 render 產生新元件型別→子樹卸載重建、狀態丟失,不只是整潔問題→ 存+演練
- Ccontext window:模型這一次能看到的世界;擴大視野的成本超線性,所以「叫它掃完整個 codebase」不成立→ 畫地圖
- P把該被重用的東西在架構上做成顯而易見:抽成模組間共享的 library,agent 不必讀完全世界也找得到→ 練習
AI 補充這個反駁與回應是全片最結構性的一段,值得慢讀:AI 之所以會重複造輪子,不是因為它笨,而是因為它的視野被 context 限制在你這次給它的東西裡。而擴大視野的成本是超線性的。於是問題自然被推回工程設計——把共用功能抽成模組間共享的 library,讓「該被重用的東西」在架構上就顯而易見,agent 不需要讀完全世界也能找到它。這正好繞回第二段的邊界:邊界不只是給人看的,也是給模型看的索引。要補一句作者跳過的:在 React 裡把元件定義在另一個元件內部,除了不能重用,還會讓每次 render 產生新的元件型別,導致子樹被卸載重建、內部狀態丟失——這是效能與正確性兩個層面的問題,不只是整潔問題。
術語:memoizationcode duplication
9. 兩端都要:高層架構 + 鑽到細節 9:27–10:20
怕被 AI 取代的話要做兩件事:談得了 system design,也能鑽到很低的層次去查清楚 codebase 是由什麼組成的。這同時是面試的解答——很多人被說「聽起來不夠資深」,就是因為只有其中一端。能同時掌握高層 system design 與瀏覽器、React 或 JavaScript 本身的細節,面試會過,工作產出會更高,也比別人更不需要擔心就業市場。重複性的前端工作會變少,但其他前端工作會變多。
推理因為前面已經證明 AI 在中間層(照規格產出)最強,所以作者的結論是往兩端走:一端是 system design,另一端是鑽進 codebase、瀏覽器、框架的細節。他順手指出這正是資深面試在測的東西——很多人被評為「聽起來不夠資深」,就是因為只有其中一端。
AI 補充把技能光譜想成一條線會比較清楚:最上面是架構取捨,最下面是執行細節,中間是把規格轉成程式碼。AI 現在吃掉的是中間那段,而且會越吃越寬。只有上端的人講得出漂亮的架構卻驗收不了產出;只有下端的人能挑出 28px 卻說不出模組該怎麼切。作者說這兩端合起來會讓你在面試與市場上都更安全,理由是一樣的:面試官問的正是那些沒有標準答案、需要你解釋取捨的問題。
10. 放著不管的代價:8.9% 重複、153 個死檔案 10:20–10:59
他們拿自家系統做靜態分析:9% 的程式碼完全重複——不是功能相似,是一模一樣——加上 153 個沒有被用到的檔案。這對管理 context 極糟,也會讓 AI 給出更差的結果。放任 agent 無人看管、不檢查程式碼品質,你會得到一個外表符合期待、底下卻是技術債大山的應用;想改一點點,整個就可能垮掉。

推理因為抽象的 code smell 說服力有限,所以作者秀出自家系統的掃描結果:Dead Code 區塊 153 個未使用檔案、220 個未使用匯出,總計 413 個問題;Duplication 區塊 9,760 行重複、重複率 8.9%。他強調那是靜態分析,代表這些片段一模一樣,不是功能相似而已。
- Ctechnical debt:外表能跑、分數不差,債仍在底下堆——dead code 污染 context、duplication 污染改動成本→ 畫地圖
- E作者自家掃描:153 個未使用檔案、220 個未使用匯出、9,760 行重複(8.9%);可維護性 89.7 卻標 good→ 存+演練
AI 補充這份報告值得注意的是它的分類方式:dead code 與 duplication 是兩種不同的病。死程式碼是「沒人用卻還在」,它污染的是 context——你和 agent 都要花力氣分辨哪些檔案還算數;重複是「同一件事被寫了很多遍」,它污染的是改動成本。畫面下方還有一項健康度指標顯示 4,780 個函式裡有 367 個超過複雜度門檻,平均可維護性 89.7 分被標成 good——也就是說,整體分數好看,問題卻集中在特定幾百個地方。這正好呼應作者的主張:外表能跑、分數不差,技術債仍然在底下堆著。
11. 無障礙:定義清楚,所以大多能自動化 10:59–12:07
無障礙不會消失,但它定義得很清楚,所以能交代給 agent:優先用語意 HTML;真的必須用一堆 div 時,用 aria 標出角色;再確認 tab index 的順序和畫面上的順序一致——主要就這些。而且它是非功能需求,商業上會被推著「做完就好」。以前要辦兩週的無障礙衝刺,現在做平台、做全公司 design system 的人先把它做對,AI 就從那裡學,你只要輕量檢查。
推理因為無障礙的規則定義得很清楚,所以作者說可以直接指示 agent:優先用語意 HTML;真的得用一堆 div 時用 aria 標出角色;再確認 tab 順序和畫面順序一致。他同時點出它是非功能需求,商業上總被推著趕快做完,所以自動化的誘因特別大。
- P無障礙交給 agent 的三條指令:優先語意 HTML→不得已才 aria 標角色→確認 tab 順序與畫面一致→ 練習
- R無障礙是 non-functional requirement,商業上總被推著趕快做完,所以自動化誘因特別大;品質要內建在來源→ 存+回想
AI 補充他描述的順序其實就是可及性的優先級:能用原生語意元素就別自己造。用 button 而不是加了 onClick 的 div,鍵盤操作、焦點、螢幕閱讀器的角色都免費拿到;aria 是補救,不是首選——標錯角色比不標更糟。他提到的第三點最容易被忽略:tab 順序取決於 DOM 順序,而 CSS 可以把視覺順序改掉,於是畫面上明明在上面的按鈕,鍵盤卻最後才走到。他說以前要辦兩週的無障礙衝刺,現在由做 design system 的人先做對、AI 從那裡學——這是把品質內建到來源,而不是事後補救。
術語:semantic HTMLtab order
12. state 與資料:收斂成 essential state 12:07–13:44
最後一個技能是狀態與資料:看著一個介面就能判斷用什麼資料結構去模擬它,把一切收斂成必要狀態。用 AI 的話,local state 會到處都是而且大量冗餘,因為元件是各自孤立生出來的;沒有溝通、不懂架構,同一份後端資料會在兩個地方各取一次,變成兩個請求。設計過的應用裡狀態是有秩序的:不要多餘狀態、不要衍生狀態,愈小愈好。他用畢卡索的公牛比喻——從細節滿滿畫到最簡的線條——再加上單一寫入原則:每份資料在系統裡只存一次。

推理因為元件是被孤立地生出來的,所以用 AI 的專案會到處都是 local state,同一份後端資料在兩個地方各取一次、變成兩個請求。作者主張的能力是:看著一個介面就判斷得出用什麼資料結構模擬它,把狀態收斂到最小——不要多餘狀態、不要衍生狀態——並用畢卡索畫公牛的系列版畫當比喻,最後配上單一真相來源原則。
- Cessential state:不能再少的那組資料,其他畫面上的東西都能從它算出來;AI 孤立生元件會到處長 local state→ 畫地圖
- A畢卡索《公牛》系列:從寫實一步步簡化到幾條線仍認得出——essential state 是找出不能再少的那組線→ 批判類比
- P對每個 state 問「能不能由別的 state 推導」,能就刪掉改成計算;同一份後端資料只取一次→ 練習
AI 補充畫面上那張圖是畢卡索的《公牛》石版畫系列:從細節完整的寫實公牛,一步步簡化到只剩幾條線仍然認得出是公牛。這裡要說的不是「越少越好」,而是「找出不能再少的那組線」——essential state 的意思正是:其他所有畫面上的東西,都能從它算出來。實務上的檢查很簡單:對每一個 state,問它能不能由別的 state 推導出來;能,就刪掉它、改成計算。旁邊那句 Single Source of Truth 是同一件事的另一面:同一份資料在系統裡只存一次,兩份就一定會有不同步的那一天。字幕把 bull 誤寫成 ball,看畫面就知道是公牛,不是球。
13. 從哪裡開始:看你的產品環境 13:44–15:15
主持人問:三個技能都知道了,該從哪開始?答案取決於你在做的系統——有微前端、有規模的,投資 system design;只負責功能、不掌管大塊系統的,就往細節走:狀態、資料、程式碼品質。做法是每次和 agent 做完事就打開 pull request,做真正的 code review,不是 AI review,而是親眼看機器產出的程式碼。他用工廠烤蛋糕比喻:唯一知道好不好吃的方法就是自己去嘗一口。
推理因為起點取決於你能影響的範圍,所以作者的建議是照系統型態分流:碰得到微前端與規模的人投資 system design;只負責功能的人往細節走——狀態、資料、程式碼品質。做法很具體:每次和 agent 做完事,打開 pull request 做真正的 code review,親眼看機器產出的程式碼。
AI 補充那個工廠烤蛋糕的比喻其實是在回答一個很現實的問題:在 AI 產出量暴增的情況下,人要把有限的注意力放哪裡?他的答案是放在輸出的抽樣檢查上——你不可能讀完每一行,但你必須真的嘗過。把這件事接回整支影片:第二段的邊界、第七與第八段的 code smell、第十段的靜態分析,全部都是為了讓這個抽樣檢查變得可行——邊界讓你知道該看哪裡,氣味讓你知道要看什麼,掃描工具讓你知道漏了多少。
4. 總結
這支影片的推理鏈是一條:先把「AI 會不會取代前端」改寫成「哪一種工作的成功條件可以被寫清楚」(第 1 段),再用兩張對照圖指出 AI 產出的缺口是邊界,而邊界同時決定了 agent 要花多少 token(第 2 段)。接著給出機制——模型為單一 prompt 做極大化,所以每加一個功能就重塑一次架構,好架構其實是穿過所有功能的那條迴歸線(第 3 段)。有了這條判準,他開始分類:design into code、web performance、automated testing 因為目標明確與可量測而被塗灰(第 4–6 段);沒被塗灰的 code quality 則用同一段 AI 產出的程式碼示範兩個氣味——寫死的 28px 破壞設計系統與認知一致性(第 7 段),內嵌元件因為 context window 的限制而必然導致重複(第 8 段)。於是能力的出路被推向兩端:談得了架構、也鑽得進細節(第 9 段),否則代價會長成靜態分析報告上的 8.9% 重複與 153 個死檔案(第 10 段)。最後補上兩塊對照:無障礙因為規則清楚而適合交給 agent(第 11 段),狀態設計則因為沒有規則可循而成為第三個核心技能,用畢卡索公牛與單一真相來源收斂(第 12 段);結尾把方法落地成一句可執行的習慣——每次和 agent 做完事,親自打開 pull request 做真正的 code review(第 13 段)。
勘誤總整理
確定錯誤/已過時見仁見智(取決於版本或情境)
| 段落 | 原話(transcript 逐字) | 說明 |
|---|---|---|
| 2. AI 給你漂亮介面,不給你邊界 0:27 |
「most of these models, including the latest Oppo models, have been heavily optimized for the "prompt- to-interface" principle」 | 「模型被刻意優化成 prompt 直接產介面」是對訓練目標的推測,各家實驗室並未公開這樣的目標函式。他觀察到的現象(agent 傾向產出視覺完成度高、結構鬆散的程式碼)確實常見,但成因更可能是評測與使用者偏好回饋偏向可見成果,而不是有一條叫 prompt-to-interface 的最佳化原則。 依據: 各主要模型的訓練目標未公開;此處為作者的推論而非引用文件 |
| 4. design into code:受衝擊最大的那一塊 3:10 |
「which used to account for 80% of our frontend work, it's almost disappeared」 | 八成這個比例是作者的個人估計,沒有資料來源,而且高度取決於團隊型態:以產品互動、狀態管理或資料視覺化為主的團隊,切版本來就佔不到這麼高。說它「幾乎消失」也偏強——複雜互動、動畫、極端內容與可及性細節仍需要人手調整。 依據: 影片中未提供任何調查或統計來源 |
5. 推薦三個下一步
1. 往下挖深:前端 system design 的實作方法
影片說「你得成為前端架構的高手」,但明確表示不在這支的範圍內;邊界怎麼畫、模組怎麼切、共用 library 怎麼抽,是整條推理鏈上最大的空白。
YouTube 搜尋:frontend system design interview micro frontends architecture feature sliced design react 前端架構 模組化
2. 往旁邊對照:狀態管理與 essential state 的實際做法
第 12 段給了原則(不要衍生狀態、單一真相來源)卻沒給工具層的做法;把它和伺服器狀態快取、狀態機這些既有方案對照,才知道原則怎麼落地。
YouTube 搜尋:derived state react react query server state xstate ui state machine single source of truth frontend
3. 往上應用:如何 review AI 產出的程式碼
結論落在「打開 pull request 做真正的 code review」,但沒說在 agent 產出量暴增時該怎麼抽樣、看什麼、用哪些工具把重複與死程式碼擋在合併之前。
YouTube 搜尋:reviewing ai generated code knip dead code typescript jscpd duplication detection code review checklist ai
- 接著看 ←Top 15 Frontend Interview Questions for 2026 (wa/ Senior Engineer) · 面試站點到的「AI 壞習慣:硬寫像素、重複 state」,在這站被展開成 code smell 與靜態分析
- 接著看 ←Every Frontend Architecture Pattern Explained in 23 Minutes · 模組邊界從架構圖變成實際判準:邊界清楚,agent 改一次才省 token
- 接著看 →Real Senior Frontend System Design Interview 2026 (AI Coding Included) · AI 取代不了的判斷力,在這站落成穩定錨點產物:設計系統、狀態圖、循序圖
- 相關 —Frontend System Design Explained w/ Senior Engineer (Microfrontends, Monorepo, MCP UI, Reactjs) · 共用 Core Web Vitals 與 critical rendering path:一站談架構怎麼降驗證成本,一站談哪些判斷 AI 取代不了
- 相關 —15 Frontend Concepts Every Senior Dev Has Mastered · 共用 essential state 與單一事實來源:一站當效能地基,一站當 AI 判準
- 接著看 →Lauren Tan grokbot workshop 中文字幕 · 那站的 code smell 與靜態分析靠人判斷,這站把判斷交給 CI 硬性執行
- 相關 —GitHub Copilot 一次只給一種答案?Orca 讓你召喚 AI 大軍同時寫 Code,優劣立判! · 共用 Code Review:一站談 AI 時代哪些判斷留給人,一站示範人如何當多個 agent 的裁判
- 接著看 →How a Cloudflare Engineer Ships Production Code He Didn't Write | Dillon Mulroy · 那站說 AI 取代不了邊界與架構判斷;這站說 agent 差的正是抽象設計,所以 spec 用型別與 interface 定形狀
- 相關 —Rails World 2026 Opening Keynote - DHH · 同一問題的兩種答案:哪些技能被塗灰,哪些留下
- 相關 —Ruby, Rails, and the future of programming - Matz, DHH & Jeremy Daer · 都在問 AI 時代人還剩什麼:一邊是品味與驗收,一邊是前端的三項技能