為什麼在 AI 時代,軟體工程基本功反而比以往更重要?

為什麼在 AI 時代,軟體工程基本功反而比以往更重要?

Matt Pocock  在 2026/4/9 於 AI Engineer 研討會所給的 Keynote

演講中提到
目前的軟體開發範式確實正在經歷劇變,甚至出現了「從規格到代碼(Specs to Code)」這種試圖完全跳過人工編碼、將開發者邊緣化的運動。
然而身為資深技術架構師,他認為:AI 雖然改變了開發工具,但並未讓傳統軟體開發原則過時。相反地,這些基本功現在是決定 AI 產出品質的關鍵因素。當撰寫代碼的成本降低,系統設計的品質反而成為區分「平庸」與「卓越」的唯一分水嶺
以下是他的論點

重點一:「從規格到代碼」的陷阱與軟體熵的威脅

「從規格到代碼」的理念宣稱:開發者只需撰寫規格文件,交給 AI 生成代碼;若有問題,就修改規格並重新運行,完全不需看代碼。這聽起來很美好,但實踐證明,這是一場通向災難的「向下螺旋」。
當我們單純依賴 AI 根據規格產出代碼,而不去審視與維護其內部結構時,會導致代碼品質隨著每一次迭代而劇烈劣化。你每運行一次 AI 「編譯器」而忽視代碼設計,系統的混亂程度就會呈指數級增加。這正是《工程師修煉之道 (The Pragmatic Programmer)》中提到的「軟體熵 (Software Entropy)」——如果只關注當下的功能變更而忽視系統整體的設計,代碼庫就會趨向崩潰。
John Ousterhout 在《軟體設計哲學 (A Philosophy of Software Design)》中對「複雜度」有精闢的定義:
「複雜度 (Complexity) 是任何與軟體系統結構相關,且會導致系統難以理解與修改的事物。」
在 AI 開發環境下,若放任 AI 產生難以修改的「垃圾代碼」,系統很快就會陷入無法維護的僵局。身為架構師,我要求團隊絕不能放棄對代碼的掌控,因為一旦你停止投資於設計,你就是在對系統進行「撤資 (Divesting)」。

重點二:「程式碼很便宜」是個危險的迷思

當前開發界流行一種觀點:「代碼現在很便宜。」這是一個極度危險的誤區。
事實上,壞代碼是史上最昂貴的資產。因為一個設計不良、邊界模糊的代碼庫,會成為 AI 發揮潛力的巨大阻礙。我觀察到 AI 在一個優質的代碼庫(Good Codebase)中表現極其出色,但在混亂、高熵的系統中則會頻頻出錯且製造更多 Bug。
「代碼並不廉價。事實上,壞代碼現在比以往任何時候都更加昂貴,因為它剝奪了你利用 AI 紅利的機會。」
在 AI 工具普及的今天,維護代碼品質不再僅僅是一種工匠精神的美德,它已轉變為一種生存競爭力。一個具備良好基礎、易於測試的代碼庫,才是 AI 能高效運作的「溫床」。

重點三:運用「拷問我 (Grill Me)」Skill 達成共享設計概念

為什麼 AI 常常做不出我們想要的東西?這通常源於 Frederick P. Brooks 在《設計的設計 (The Design of Design)》中提到的溝通障礙:雙方缺乏一個共同的「設計概念 (Design Concept)」
當你與 AI 協作時,存在一種關於「我們要建什麼」的隱形假設。如果雙方對此缺乏共識,AI 就只是在盲目執行命令。
為解決此問題,Matt Pocock 分享了他的 Skills For Real Engineers 在 GitHub 上已獲得超過 684,000 顆星,應該很多人覺得有幫助。
他極力推薦一種名為 「拷問我 (Grill Me)」 的技能。與其直接下指令,不如對 AI 下達這樣的指令:
「針對這個計畫的每個面向不斷對我進行提問,直到我們達成深層的設計共識。請沿著設計樹 (Design Tree) 的每個分支,逐一解決決策間的依賴關係。」
它能將 AI 從單純的執行者轉變為「對抗式」的設計夥伴,有時 AI 會連續提出 40、60 甚至 100 個問題來挑戰你的設計細節。這種深度對話能強迫開發者在動工前理清思路,確保雙方在同一條船上。

重點四:建立「統一語言 (Ubiquitous Language)」減少 AI 的廢話

他指出 AI 有時產出的內容過於冗長 (Verbose) 且抓不到重點?這通常是因為語言不對等。
借用領域驅動設計 (DDD) 的概念,核心策略應該是與 AI 建立一套 「統一語言 (Ubiquitous Language)」。具體作法是要求 AI 掃描代碼庫,並生成一個包含核心術語表 (Terminology) 的 Markdown 表格 (Markdown Table)
這份表格定義了開發者與 AI 共同遵循的術語標準。當 AI 擁有明確的術語框架時,你在閱讀它的「思維路徑 (Thinking Traces)」時會發現,它的計畫變得更精簡,實現過程也會精確地符合你的業務意圖,有效減少無謂的廢話產出。

重點五:深度模組化 (Deep Modules) 是 AI 導航的指南針

在 AI 時代,系統架構決定了 AI 的開發效率。人類工程師必須學會區分「淺層模組」與「深度模組」:
    • 淺層模組 (Shallow Modules): 內部邏輯貧乏但介面複雜。如果代碼庫充斥著無數細小、分散的「小肉球 (Blobs)」,不僅 AI 會在導航時迷失方向,人類大腦也會因為過高的認知負擔(Cognitive Load)而感到前所未有的疲憊。
    • 深度模組 (Deep Modules): 核心定義在於 「將豐富的功能隱藏在簡單的介面之後」
Matt Pocock 提倡的戰略是 「設計介面、委派實現」,並將模組視為 「灰色盒子 (Gray Box)」身為架構師,你應投入大量精力精雕細琢模組的介面與邊界,確保它們具備高度可測試性;至於內部的具體實現,則可以放心地委派給 AI
這種結構能完美支持 測試驅動開發 (TDD)。在 TDD 模式下,AI 被強迫採取細小且明確的步驟(Small Steps),有效避免《工程師修煉之道》所警示的 「超速行駛 (Outrunning your headlights)」——即回饋速度跟不上開發速度的風險。深度模組提供的清晰邊界,正是 AI 在黑暗中前行時最可靠的照明。

Matt Pocock 的總結: 「你是戰略指揮官,AI 是你的前線軍士」

在 AI 時代,工程師的角色必須發生轉變。我們必須從繁瑣的「戰術編碼 (Tactical)」抽身,轉向更具價值的「戰略設計 (Strategic)」。
AI 就像是一個極其高效、在前線衝鋒陷陣的軍士長,但他需要一位具備戰略眼光的指揮官來指引方向。正如大師 Kent Beck 的核心建議:「每天都要為系統設計進行投資 (Invest in the design of the system every day)。」
當撰寫代碼的門檻不復存在,你對軟體工程基本功的堅持、對系統架構的洞察,將成為你最不可替代的核心價值。最後,請捫心自問:在 AI 面前,你是那個只會改規格的旁觀者,還是那個能指揮 AI 構建宏大建築的總建築師?
一人網路公司背後的系統架構

一人網路公司背後的系統架構

之前聽星箭廣播–「從業餘專案到「一人公司」,podcast 搜尋引擎 Listen Notes 的故事」,創辦人 Wenbin Fang 提到他寫了一篇 blog 文介紹一人網路公司背後所用到的一些 SaaS 服務以及後端系統所用到的技術,就作個記錄讓之後自己需要 recalling 時比較容易。

2022年度回顧

2022年度回顧

2022年底身體出了點狀況,雖然在年終考評時作了回顧,但一直到今天 (2023/1/13) 才作了比較完整的整理。

在醫院智慧醫療專案方面:

  • CXR-AI:胸部 X 光的 AI 辨識模型主要是 Mora 在帶領,我只是在一旁敲邊鼓、用嘴巴做專案(提出一些 Ops上的想法),一些成果摘要
    • 藍綠部署:可以用 Zero Down Time 的形式進行 AI model 的升降版,而不會中斷醫院胸部 X 光的即時判斷流程
    • Dashboard:以視覺化的方式,進行 AI model 的效能監控
    • 以數據為基礎進行 iterative & continuous AI learning cycle
    • 專案成果由我們的 AI 數據科學家 Mora,投稿了 PyCon APAC 2002 「醫療影像AI產品落地挑戰與持續優化的歷程分享」( https://bit.ly/3Zm40hj )
  • 企業健檢資訊系統:醫院承接了中部世界級科技廠的健檢業務,面對嚴格的服務需求,我們也重新開發並整合了資訊化的健檢資訊系統。
    • 整個健檢系統包含:體檢現場關卡工作站、RIS2.0 (w/ CXR-AI)、智慧總評報告系統
    • 整套系統讓社福部同仁及家醫科醫師的工作流程能更順暢地進行
    • 建構流程 Pipeline Dashboard,協助社福部數據化管理,加速 Lead Time
    • 我們的產出品質,獲得廠商不錯的評價,也多爭取到今年新竹廠的健檢 Case
    • 這個專案也驗證了動態電子表單架構的技術可行性
  • 管路&個案管理資訊系統:
    • 培養第二個 Scrum Master
    • 建立可與 Legacy HIS 互動的微服務
    • 探索出在 Legacy HIS 逐步抽取出(abstract) HIS 2.0 微服務的開發模式
    • 企業健檢、管路&個案專案經驗已投稿 Agile Summit 2022 「為醫療加裝敏捷的引擎」 ( https://bit.ly/3VdRqPa )
  • 電子表單:可以類比為醫療用的 Google Form
    • 實現醫療欄位化表單
    • 動態生成介面的醫療用電子表單
    • 建立可共用的微服務範例
    • 投稿了 PyCon APAC 2002 「Python Design Patterns」( https://bit.ly/3IBXFrV )

工程實踐

  • Monitoring:
    • 導入 Zabbix 監控系統狀態
    • 導入 Graylog: 記錄 log &  使用者的操作
    • 導入 Grafana: 建立 Dashboard,視覺化地呈現系統狀態及使用者的操作歷程
  • CI:導入 Harbor, Gitlab CI, 提升 DevOps 成熟度(自動化、安全性)
  • Clean Architecture:以 Clean Architecture 實作了院內用戶的 Single Sign On,並分享給團隊成員

團隊建立

  • 1 on 1:
    • 做得不好的地方是頻率降低了,
    • 但在年底時帶著 Member 針對他個人的 output/outcome/impact 做了一次 ORID 的回顧,大家都覺得自己在今年有不少成長,也頗有成就感。這部份明年應該要持續做
  • 跨團隊專案執行:
    以前都是單一團隊執行獨立專案,這部份已經可以成功複製;但跨團隊執行共同的專案,團隊與團隊間的溝通與成果介接仍然有很大的成長空間。

讀書:

應該是讀了不少書,就記錄些還有印象的書

    • Design Pattern :讀了很多本,算是稍微能分享 Design Pattern 概念
    • Clean Architecture:
      • Clean Architecture
      • 架構模式-使用 Python
    • Domain Drive Design
      • Domain Drive Design, 領域趨動設計
      • Domain Drive Design Distilled
    • 專案相關與溝通
      • 經理人之道
      • 獨角獸專案
      • 我想和你好好說話
      • 李崇建-薩堤爾系列

2023目標

  • 之前太忽略了生活的平衡,今年最主要的目標是把鍛練身體放在第一位,應該會以超慢跑,穴道導引為主。另外也會多安排跟家人相處的時間
  • 技術研究:
    • DDD, Clean Architecture
    • 公司內分享
    • 投稿: PyCon, Clean Architecture
  • 定期公司讀書會
    • 修練非暴力溝通
  • blog: 努力作做到二週一篇文章
[筆記] Event Storming 學習資料

[筆記] Event Storming 學習資料

最近開始 Study Event Storming 並應用到公司的需求收集、討論以及系統設計,整理一些自己看到的資料連結,以便日後可以自己複習。

Webs/Articles:

Videos/Presentations

Books:

使用 Pytest 進行單元測試

使用 Pytest 進行單元測試

本文整理了我在 PyCon TW 2021 年投稿的 Tutorial 分享 – 使用 Pytest 進行單元測試

內容大綱如下:

我也為了這個分享錄製了相對應的 live demo 影片,提供有興趣的朋友參考。

VS code 使用 Remote-SSH時遠端 .profile 沒有被執行的問題解決

VS code 使用 Remote-SSH時遠端 .profile 沒有被執行的問題解決

使用 VS code – Remote-SSH, 在 Remote Host 會有 (.profile not being sourced in Integrated Terminal) 的問題.
如果你是在 remote host 使用 conda 時,在 integrated terminal 沒有 source .profile, 那便沒有辦法啟動虛擬環境
$ conda activate [virtualenv name]
解決方法在下面的 link.
PyCon US 2020 待讀清單

PyCon US 2020 待讀清單

今年 PyCon US 2020 採線上分享模式,已陸續釋出許多分享的影片,網址在

https://us.pycon.org/2020/online/

先列出自己想要聽的 talk 清單

Tutorials

Talks

良好的 Git Commit Message 撰寫慣例

良好的 Git Commit Message 撰寫慣例

想要在 Git 專案中將 commit message 的規範定下來,google 了一下網路的內容,已經有很優質的討論內容。

以下是自己覺得值得參考的內容: