AI輔助編程系統工程的注意事項-程序員從“農耕”走向“魔法”的時代
目 錄
1..... 項目實踐依據... 2
2. 前言:軟件工程的範式轉移,從“關注過程”到“關注意圖”... 4
3..... 需求明確及AI審核:人與AI雙向的需求驗證... 4
4..... 更需要系統化思維:科學拆分業務單元... 4
5..... 受第三方組件影響:生成代碼不一定正確... 5
6..... AI的補丁思維:局部修改可能引入全局問題... 5
7..... 需要Review代碼:業務邏輯審核與把控... 5
8..... 更重視系統測試:小模塊的bug可能隱藏很深... 6
9..... 最終需要人工驗收:人始終是系統的負責人... 6
10... 結束語... 6
1. 項目實踐依據
項目實踐:基於Ai Coding,20天完成一個基於大模型的醫學分析系統:Ai體徵分析助手。
項目試用:https://www.aineuos.net。微信小程序:Ai體徵分析助手。
應用系統界面:
項目工程代碼:
AI應用請求分析:
2. 前言:軟件工程的範式轉移,從“關注過程”到“關注意圖”
在傳統軟件工程中,通過嚴謹的過程來控制質量:需求分析、詳細設計、編碼規範、代碼審查、測試流程……每一個環節都有明確的文檔和檢查點。這種“關注過程”的方式,主要是在人力成本高昂時代,最大限度地降低風險。
隨着AI輔助編程工具的普及,軟件工程的底層邏輯正在發生根本性變化。當AI自動生成大量代碼時,關注點從“如何寫代碼”轉向“如何表達意圖”。開發者不再需要親手開發每一行代碼,而是需要清晰地描述需求、拆解業務、驗證結果。
這種從“過程”到“意圖”的轉變,對系統工程提出了全新的挑戰。
3. 需求明確及AI審核:人與AI雙向的需求驗證
在傳統模式下,需求文檔(PRD)是人寫給人的説明書,難免存在歧義和遺漏。而在AI輔助編程中,需求文檔同時成為了AI的“輸入”。這就要求需求必須明確、無二義性。
假定需求已經是明確的,仍然需要AI來審核需求。將初步需求輸入AI來驗證邏輯和細節的合理性,迭代和完善需求。通過這種“人寫需求→AI嘗試實現→人根據AI反饋修正需求”的循環,可以大幅提升需求的準確性和完整性。
4. 更需要系統化思維:科學拆分業務單元
在AI輔助編程中,開發者必須對業務有深刻的理解,並具備科學拆分功能的能力。定義好模塊邊界、接口協議、數據流向等,甚至編寫好核心的架構骨架,然後讓AI在限定的上下文中填充具體實現。系統化思維不再是架構師的專利,而是每個參與AI協作的開發者的基本功。
5. 受第三方組件影響:生成代碼不一定正確
AI的訓練數據來自海量開源代碼,它生成的代碼會引用各種第三方庫和框架。這帶來兩個問題:一是引用的庫可能已經過時、存在安全漏洞,或者許可證不兼容;二是AI可能錯誤地使用API,導致功能異常。
儘管可以通過編譯,但是不代表不會出現異常提示。也有可能編譯後的代碼可以運行,但它不一定是最佳的實現方式。
這類問題通常比較容易修正,更換庫版本及調整參數,往往就能解決問題。
6. AI的補丁思維:局部修改可能引入全局問題
在與AI交互時,我們常常會針對某個小問題要求AI進行完善,例如針對某個問題進行修正,AI更多的時候會在其他地方“打補丁”來響應指令,為了快速修復一個bug,AI生成了臨時方案,這種“補丁思維”容易導致代碼逐漸偏離原有設計,並且產生冗餘代碼。
開發者需要識別這種補丁式增補代碼是否合理,最終決定是否要增補代碼。
7. 需要Review代碼:業務邏輯審核與把控
AI生成的代碼必須經過嚴格的代碼審查(Code Review)。這一點與傳統開發並無不同,審核代碼粒度視業務複雜度影響。
首先,關注邏輯正確性:AI是否理解了你描述的意圖?邊界條件處理了嗎?異常分支覆蓋?
其次,要根據業務複雜度決定代碼審核粒度。例如針對工業控制需要逐行審核,針對增刪改查需要代碼塊審核。但無論如何,代碼審查是不可省略的環節,是AI產出代碼質量最後防線。
8. 更重視系統測試:小模塊的bug可能隱藏很深
AI輔助編程,測試的重要性不降反升。因為代碼生成速度變快,bug的引入速度也可能變快。我們需要更完善的自動化測試套件,包括單元測試、集成測試、端到端測試,以及持續集成流水線,確保每次AI生成的代碼都能被快速驗證。測試不再是開發完成後的收尾工作,而是與編碼並行。
9. 最終需要人工驗收:人始終是系統的負責人
人工驗收不僅是對功能的確認,更是對非功能需求的檢查:性能、安全性、可維護性、用户體驗等。AI可能生成一個“能用”的系統,但不一定是“好用”“可靠”的系統。
AI是工具,人是決策者,驗收不是終點,而是人機協作持續優化的起點。
10. 結束語
AI輔助編程正在重塑軟件工程的實踐方式,從“會寫”到“會用”的轉變。
物聯網&大數據技術 QQ羣:54256083
物聯網&大數據項目 QQ羣:727664080
QQ:504547114