AI編碼工具的出現,並非要取代開發者,而是旨在增強開發者的能力,可處理耗時且重複的編碼任務,讓開發者能專注於更具創造性和策略性的工作。這場由AI引領的變革,正重新定義軟體開發的流程與價值。選對合適的AI編碼工具,就能加速程式開發的品質與進度。
近年來,基於大型語言模型(LLM)的AI編碼工具如雨後春筍般湧現,它們不僅是傳統開發工具的升級,更是從根本上改變程式設計方式的革命性產品。AI編碼工具的崛起,標誌著人機協作開發新時代的到來,透過分析高品質海量的開源程式碼、文件及開發者討論資訊,掌握了豐富的程式設計模式、最佳實踐,以及不同程式語言的細微之處。
上集文章介紹了IDE輔助∕程式碼補全與生成工具、AI驅動的整合開發環境以及前端UI∕網頁生成工具等三大類型的AI編碼工具,本文將接著說明AI編碼工具的實際應用與案例,以及如何選擇合適的AI編碼工具。
AI編碼工具的實際應用與案例
AI編碼工具的應用已超越簡單的程式碼補全,逐步整合到軟體開發的各個環節,帶來效率提升與流程優化。
加速日常開發
最常見的應用是透過智能補全和程式碼生成,減少鍵盤輸入(更甚者,使用語音輸入)和解決瑣碎思考問題的時間,尤其在API串接、資料庫欄位結構定義、重複功能邏輯方面效果顯著。
程式碼重構與優化
分析現有程式碼,識別潛在壞味道(Code Smell),提出重構建議,甚至自動執行部分重構操作,如提取函數、變量重命名、簡化複雜條件等,提高程式碼質量和可維護性,Cursor等工具的聊天介面就擅長這類任務。
自動生成單元測試
撰寫單元測試是確保程式碼質量的關鍵環節,但也非常耗時,工具可以根據原始程式碼自動生成測試案例的骨架,甚至是實現完整的測試,大幅減輕測試工作的負擔。
學習新技術
對於學習新的程式語言、框架或庫,AI工具可扮演的是輔助角色,藉由索引外部文件,解說範例程式碼,可快速理解新語言用法和開發範式。
理解複雜程式碼
面對陌生、大型或文檔不全的程式碼庫,具備完整專案理解能力(如Sourcegraph Cody、Cursor)可幫助開發者快速梳理程式邏輯、追蹤程式調用鏈、解釋複雜邏輯。
系統維護與升級
可處理自動化繁瑣維護任務,如自動升級相依套件、應用安全修補程式、改寫棄用物件、函式和API等,例如Java/Spring Boot可利用OpenRewrite建立的升級食譜,請工具參考後,自動執行升級步驟(過程錄影:https://youtu.be/J5c4k4L6BKc)。
非程式開發應用
LLM底層是強大的語言模型,其能力並不局限於程式碼,開發者也開始探索將其用於非程式開發任務,例如:
‧文檔撰寫與翻譯:生成README、API文檔、註釋,翻譯技術說明文件,可參考Youtuber秋芝2046影片(https://www.youtube.com/watch?v=JoN9D6Bz8jk)。
‧資料分析與報告:輔助撰寫SQL腳本,解釋分析結果,生成摘要報告。
‧知識檢索與總結:可利用Cursor分析所得稅法律條文,將PDF等非文字檔,透過微軟MarkItDown轉成makrdown文字檔,詢問節稅技巧(圖1,節稅技巧應用範例),或針對超大型文本利用MCP分段拆解分析產出心得總結(圖2,超大型文本應用範例)。
圖1 節稅技巧應用範例。
圖2 超大型文本應用範例。
如何選擇合適的AI編碼工具
面對眾多選擇,需綜合考量多方面因素找到最適合個人或團隊的工具,關鍵考量因素如下:
‧開發需求:主要想用AI做什麼?加速程式開發、生成UI、理解程式碼等,決定了工具類型。
‧技術棧:確保工具支援常用語言、框架、IDE。
‧團隊規模與協作:個體開發者看重免費易用,但團隊須考慮協作、規範統一、知識共享等特色(如Tabnine團隊模型)。
‧安全與隱私考量:若處理敏感程式碼,評估資料處理策略。是否會將程式碼上傳雲端?支援本地部署方式(如Tabnine)。
‧LLM模型數量:目前多數工具都支援多家廠商的語言模型,尤其以Claude Sonnet和Google Gemini 2.5 Pro在程式開發問題效果最佳,建議挑選支持多種模型的工具。
‧預算限制:評估不同定價模式的成本與效益。
新興趨勢與概念:拓展AI編碼的邊界
AI Coding工具,特別是具備強大自然語言處理和上下文理解能力的工具,如Cursor,其應用潛力已超越傳統編碼輔助,甚至可借鑑知識管理方法論,例如「打造第二大腦」一書提出的CODE方法(獲取Capture、組織Organize、萃取Distill、表達Express),可以透過AI Coding工具來實踐:
1. 智能擷取(Capture):AI工具能快速讀取和消化大量資訊來源,貼入文本、讀取本地∕遠端文件如法律條文、報告,如同第二大腦強調的輕鬆捕捉資訊並數位化。
2. 初步組織(Organize):AI在捕捉資訊時已進行初步結構化處理(解析語義、識別關鍵實體),相當於第二大腦中對資訊進行初步分類標記,便於後續管理。
3. 高效萃取(Distill):這是核心步驟,例如利用AI從複雜法規中提煉具體節稅建議,如同將原始資料轉化為精簡筆記,AI的摘要、重點提取、問答能力可助快速掌握大型文本核心,避免資訊過載。
4. 知識表達(Express):AI工具的聊天介面提供了便利的知識檢索入口,可隨時針對已分析內容提問,能根據上下文快速找到相關資訊並清晰表達,如同與知識助手對話。
總之,AI Coding工具憑藉其文本理解、分析、摘要和交互能力,可成為建構個人「第二大腦」的有力助手,高效處理、理解和利用海量資訊,將外部知識轉化為個人能力,體現其從「編碼」助手向更全面「知識工作」夥伴的進化。
結合以下發展中的技術概念,可進一步拓展AI Coding工具的應用場景:
Anthropic MCP(Model Context Protocol)
由Anthropic公司提出並開源的MCP是一個旨在統一大型語言模型(LLM)與各種外部資料來源(本地文件、資料庫、API、即時系統、雲端服務等)互動方式的新標準協定。其核心目標是讓LLM能夠像讀取本地文件一樣,輕鬆、安全、標準化地訪問和利用來自四面八方的上下文資訊,見圖3示意圖。
圖3 MCP架構示意圖。
其核心優勢包括以下幾種:
‧統一標準:開發者實現MCP介面即可連接多種資料源。
‧多格式支援:處理結構化和非結構化資料。
‧無縫整合:允許在LLM互動介面(如聊天)中直接引用和操作外部資源。
‧應用潛力:MCP可極大增強AI編碼工具能力。例如,在Cursor或Copilot Chat中明確指示用MCP讀取資料庫表、Figma設計稿(圖4)、Jira工單或即時監控指標,讓AI基於這些即時豐富上下文生成程式碼、分析系統問題,甚至可透過Browser MCP與網頁互動,如圖5示範請Agent找出購物網上特定鞋款。
圖4 Figma MCP示範。
圖5 Browser MCP示範。
目前MCP服務繁多,已有諸多網站提供目錄索引供查詢使用,如https://smithery.ai/、https://mcp.so/、https://github.com/punkpeye/awesome-mcp-servers等。
Vibe Coding
由OpenAI的聯合創始人Andrej Karpathy提出的新開發模式,描述了一種更加依賴直覺和AI協作的開發方式,在這種模式下,開發者更多地關注「想要實現什麼」(What)以及整體的「感覺」(Vibe),而將具體的「如何實現」(How)的細節大量交給AI。開發者與AI緊密合作,透過對話、提示和快速迭代來塑造最終的程式碼,甚至可能不再深入關心每一行程式碼的具體邏輯,Y Combinator新創孵化器有影片討論這趨勢(https://youtu.be/IACHfKmZMr8)。
‧核心理念:擁抱AI的能力,順應開發過程中的直覺和感覺,減少對傳統程式碼細節的執著,更像是指揮家而非演奏者。
‧影響:Vibe Coding可能會進一步降低程式設計的門檻,讓更多非傳統背景的人參與到軟體創造中。同時,它也對開發者的能力提出了新的要求,例如更強的抽象思維、需求描述能力以及對AI生成結果的判斷和引導能力。這也引出對「Unknown Unknowns」(不知道自己不知道的事物)的思考,即過度依賴AI可能讓我們失去對底層細節的掌握統一標準。
Thoughtworker架構師Neal Ford在Podcast說到:「當你要求大型語言模型進行架構師所做的權衡分析時,它總是會提出三個好建議和四個糟糕建議,面對那些會損害系統(例如安全漏洞等問題)的糟糕建議,你能憑感覺編碼避開嗎?這些模型確實比人類強,但我們討論的是連人類都尚未真正掌握的領域。」(https://www.thoughtworks.com/insights/podcasts/technology-podcasts/vibe-coding)
結語:擁抱變革,人機協同
面對這場變革,最關鍵的觀點是:AI是增強而非替代,AI編碼工具的目標是賦能開發者,將他們從重複性勞動中擺脫出來,專注於更具創造性、戰略性和複雜性的任務。人類開發者在系統架構設計、業務邏輯理解、使用者需求洞察、創新性問題解決等方面的價值依然無可替代。
理想的未來是人機協同,結合AI的效率、廣度和人類的深度、智慧與創造力,如Deepwiki(https://deepwiki.com/)就可分析軟體專案程式碼,提供優化建議,圖6是分析筆者專案後的結果。
圖6 Deepwiki分析結果。
對於開發者而言,擁抱這趨勢需要:
1. 開放心態,勇於嘗試:從免費工具開始,體驗AI輔助編程的便利。
2. 整合工作流:將合適的AI工具無縫融入現有的開發環境和流程中。
3. 學習有效互動:掌握提示工程(Prompt Engineering)技巧,學會如何清晰、準確地向AI表達意圖和提問,以獲得更高質量的結果。
4. 保持批判性思維:永遠不要盲目信任AI生成的程式碼。必須審核、理解、測試AI的輸出,確保其正確性、安全性和性能符合要求。AI是助手,最終的質量把關者仍然是開發者自己。
關於AI是否會減少開發職缺的討論甚囂塵上。雖然AI提高了個體開發者的生產力,使得完成同樣的任務可能需要更少的人力,但同時,軟體需求的增長、新興技術領域的拓展以及AI本身帶來的新的開發需求(如模型訓練、部署、整合、AI應用的開發等)也可能創造新的就業機會。更確切地說,AI正在改變程式開發的角色和所需的技能組合:
‧軟技能日益重要:溝通、協作、需求理解、系統設計、問題分解等軟技能的價值將更加凸顯。
‧效率大幅提升:開發人員的產出效率將普遍提高,對交付速度的要求也會隨之增高。
‧入職門檻降低:對於某些應用場景,程式語言本身的掌握難度可能不再是主要瓶頸,讓非資訊科系背景的人更容易轉職到程式開發工作。
‧基礎知識與思維仍是核心:資料結構、演算法、作業系統、網路、資料庫等計算機科學基礎知識,以及系統性思維、邏輯思辨能力,仍然是優秀開發者的基石。
‧發展路線分化:未來的開發者可能更傾向於兩條路線:一是貼近業務、快速迭代的產品導向型開發,二是關注底層架構、性能優化、系統穩定性的系統架構型開發。
AI Coding工具是軟體開發領域不可逆轉的趨勢,每位開發者都必須擁抱這類工具,就如同當年沒有網路是透過翻書來寫程式,搜尋引擎出現之後,就直接使用Google搜尋,再到Stack Overflow網站查詢問答,現在變成直接在AIIDE直接提問,連介面都不用切換。在AI應用百花齊放的發展之下,與其擔憂被取代,不如積極擁抱變化,學習利用這些強大的工具來提升自身能力和價值,在人機協同的新模式中,採用更高效、更具創造力的工作方式,讓生產力大幅提升。
若隔壁同事採用後只需一天就完成一週的工作,相對地,就會被要求提高效率,這已經是進行式,這場開發技術革命才剛剛開始,未來發展仍充滿變化與挑戰。
<本文作者:鄭淳尹,Docker.Taipei社群共同發起人,國泰金控技術架構師,曾任台北富邦銀行雲端系統部架構師、微軟MVP、momo購物網架構師、臺北榮民總醫院資訊工程師、玉山銀行資訊處專員、宏碁eDC維運工程師。開源技術愛好者,曾在多間大學資工系擔任Docker容器技術講師,並翻譯審閱多本容器技術書籍。>