AI 工程技能地圖:軟體工程基礎
在代理式編程時代,為什麼全端、資料、架構、安全與正式環境營運仍是 AI 工程師的基本功?
譯自 Andrew Ng,〈AI Engineering Skills Map: Software engineering fundamentals〉,2026 年 8 月 29 日。閱讀英文原文。以下為完整繁體中文譯文。
代理式編程如何改變軟體工程的基本功?即使你讓程式代理撰寫所有程式碼,理解軟體基礎仍很重要,因為這能讓你引導代理在你想要的取捨上做決策,甚至知道有哪些取捨存在。
此外,在打造 AI 應用時,AI 核心通常由更廣泛的軟體應用程式承載,而你會希望協助建構或塑造這個應用程式。
不理解軟體基礎、只靠氛圍編程的初學者,可以做出簡單應用,但往往會讓程式代理在延遲、可用性、一致性、可靠性、可維護性、簡潔性或成本上做出錯誤取捨。在這些情況中,開發者甚至不知道這些取捨存在,因此無法引導代理為其應用情境做出正確決策。
我們對 AI 工程技能的研究顯示,軟體工程中最重要的能力包括:
- 建置全端應用
- 管理資料
- 設計系統架構
- 讓系統安全且可靠
- 在正式環境中擴展與營運系統
建置全端應用
代理式編程讓許多過去較專精於特定領域的開發者,例如前端或行動開發者,能扮演更全面的全端角色。程式代理能協助你處理較不熟悉的開發環節,但理解整個技術堆疊實際如何運作仍然很重要。
熟練的開發者了解前後端的關鍵組成與概念,包括 UI 元件、快取、頁面渲染、API 的選擇與設計、身分驗證、狀態與工作階段管理、非同步處理、資料持久化、測試、安全性及無障礙設計。
管理資料
資料值得特別重視,因為它是軟體建立其上的基礎,而且相對難以變更,即使代理能協助進行遷移也是如此。當你懂得管理資料,就能思考存取模式,據此決定要儲存什麼、保存多久。
你也能辨識適合的資料模型、儲存類型與基礎設施,例如關聯式資料表、文件、鍵值儲存或圖形資料庫,而這些選擇會影響速度、可擴展性、可用性、可靠性與成本。你也會理解交易、併發,以及如何確保資料乾淨、一致且即時;必要時,還能確保隱私、治理與合規,並管理整個資料生命週期。
隨著應用演進,你也必須知道如何隨之演進資料架構。資料管理需要大量人類提供的情境,而 AI 系統會從資料來源取得自己的輸入情境,所以資料架構若選得不好,AI 甚至不知道自己不知道什麼。
因此,需要具備相關情境與 AI 工程能力的人介入,把它導向正軌。為代理建置資料基礎設施,而不只是為傳統軟體或人類使用者建置,仍是快速演進的領域,最佳實務也必須持續調整。
設計系統架構
當你了解軟體與資料全端的主要元件後,就更能決定如何把它們組合起來。好的系統設計需要理解軟體要完成什麼,例如使用者數量、延遲的重要性與成本的重要性;接著才能決定應用平台、前後端邊界、系統拆分方式、應用狀態放置位置,以及架構粒度,例如單體或微服務。
你也會選擇技術堆疊,包括程式語言、執行環境、元件/前端/後端框架與資料技術;有時會先做實驗來評估選項,再決定採用哪一種。
正確的架構會隨專案階段而改變:快速原型所需的簡單架構,不一定適合第一個正式系統;系統擴大後,架構也可能必須再改變。這些決策需要對軟體元件和應用情境有深厚理解,才能設計並持續演進架構,做出更好的取捨。
讓系統安全且可靠
你應知道如何制定測試策略來驗證系統正確性,包括單元測試與整合測試的組合、使用哪些框架,以及要達到何種覆蓋程度。你也要能為可能的失敗設計因應方式,例如處理 API 觸及速率限制、建立優雅降級機制,並縮小故障的影響範圍。
「左移」安全性主張在開發生命週期更早期就處理安全問題。正如開發者愈來愈走向全端,許多開發者也正在成為部分的安全工程師。你可以使用 AI 工具掃描程式碼漏洞、檢查依賴套件的供應鏈注入風險,並檢視雲端設定的攻擊面;但要做好這些工作,仍需要一定的資安知識。
在正式環境中擴展與營運
若要服務真正的使用者,你必須知道如何將軟體部署到正式環境。你會受益於理解完整的軟體開發生命週期:除了建置與測試,還包括設定部署環境、決定發行策略、導入 CI/CD 等部署自動化,以及理解 IaaS。
正式環境的營運需要可觀測性工具、警示與事件管理。若要擴展應用,也要了解實際負載,並知道如何擴充伺服器、進行負載平衡、調整資料基礎設施,例如分片、建立索引與複寫,或改變架構以因應規模。版本控制、程式碼審查、依賴套件維護與技術債管理等編碼最佳實務,則能幫助你持續演進系統。
程式代理已改變我們建置軟體的方式,包括不含 AI 元件的軟體。有些編程知識,例如背誦語法,正逐漸變得不那麼重要;但真正深刻理解軟體如何運作的開發者,仍會遠勝於不了解原理、只靠氛圍編程的人。
理解軟體基礎(加上 AI 知識)也能幫助你判斷軟體能做什麼、不能做什麼。這些知識是你如何使用程式代理、如何塑造產品的重要情境基礎;Andrew Ng 表示未來會再談。