如果你還沒有嘗試過CoPilot、ChatGPT等工具來輔助開發工作,未來的5年,你可能會很快被行業所淘汰。這是因為那些善于利用AIGC來輔助編程的人可以以十倍于你的速度開發出相應的代碼,而你卻沒有這項技能。

顛覆傳統初級程序員培訓和輔導過程的大模型出現,使得技術和經驗擁有了“平權”的機會。
試想,過去初級程序員在入職時通常是由師傅給出一個任務需求,教授大致的思路,然后在初級程序員編寫代碼的過程中進行培訓和糾正,根據不同的問題提供不同的解決方案,直到初級程序員掌握這些經驗。
然而,隨著大模型的出現,這個過程發生了徹底的改變。大模型本身擁有廣泛的知識,并且具備一些基本的推理能力。它可以通過無數次的實踐,學習公司中各種代碼和業務定義。與師傅相比,大模型所遇到的場景要多得多。同時,根據開發者的需求和目標,它還能夠提供可能的答案。
這個過程就好像我們得到了一個無所不能的"導師",不僅可以立即回應我們的需求,還可以直接為我們撰寫可能的代碼供我們參考學習,使我們這些初級程序員能夠快速掌握撰寫代碼的技能。通過自己的學習和調整,我們可以提交出遠遠超過個人水平的代碼,供他人進行評審。
因此,聰明如你,我們沒有理由不使用大型模型來提高我們的研發效率。
目前AIGC 自動化編程工具林林總總,流行的工具包括ChatGPT和CoPilot,面對不同的業務場景中,如何選擇合適的工具來幫助自己提效呢?
優點
缺點
場景
人
邏輯復雜縝密,可以完成比較復雜的開發任務
寫代碼效率低
成本高
復雜業務邏輯
核心引擎
CoPilot
整合在開發工具中,快速復用/書寫類似代碼
準確率不高,生成代碼段比較短,邏輯簡單
輔助編程就,復用代碼
ChatGPT
可以編寫較復雜的業務代碼,特別是有類似案例的情況下
需要code-review,錯誤隱藏的更深嗎,缺乏創造性
有類似場景代碼,自動生成新場景代碼
不難發現,人類最適合從事具有挑戰和創新的架構類產品或者某個新業務場景的代碼開發。如果其中某些部分可以復用或者使用相似的算法,可以利用CoPilot快速提高工作效率。而ChatGPT則適用于自動生成類似場景的代碼,稍加修改即可使用。。
回到國內,國內軟件開發領域大模型也在不斷深化落地。以飛算SoFlu軟件機器人近日重磅上線FuncGPT(慧函數)功能為例。作為飛算SoFlu軟件機器人的一個重要組成部分,FuncGPT(慧函數)支持所有類型函數創建。通過自然語言描述JAVA函數需求,實時生成高質量、高可讀性的Java函數代碼。生成代碼可直接復制到IDEA,或一鍵導入Java全自動開發工具函數庫。同時FuncGPT(慧函數)采用代碼編寫最佳實踐及大規模機器聯合訓練的方式,致力于通過AIGF(AI-Generated Function)賦能軟件開發,為中國軟件開發者提供全棧式全流程軟件開發的最佳體驗。
具體來說,FuncGPT(慧函數)具備以下五大能力:
● 自然語言:通過自然語言即可生成函數,降低軟件開發門檻。
● 秒級函數開發:全自動秒級開發函數,秒級完成,效率千倍提升。
● 一站式函數開發應用:函數生成即可直接應用,效率、安全有保障。
● 質量可靠:生成的函數代碼符合業界規范、具備良好的可讀性,符合最優解。
● 靈活生成:可以根據開發人員的具體需求生成并支持調整和修改。
FuncGPT(慧函數)現已開放免費使用,點擊鏈接可以直接解鎖SoFlu軟件機器人更多特色功能。鏈接:http://suo.im/aREPi
但我們必須承認,盡管以ChatGPT和Co-Pilot代表的AI工具可以輔助編程,但它們并非萬能的。目前,大模型生成代碼仍面臨許多挑戰:
1、精確度的問題;
2、無法進行代碼審查。
3、無法自動化進行測試;
4、無法擔責。
精度度方面,即使是像ChatGPT4這樣的大型模型也有可能出現錯誤,其準確率也只有90%,因此我們應該盡量簡化代碼編寫的過程,以免產生完全錯誤的代碼。當大型模型快速生成代碼后,人類進行的代碼審核可能無法及時進行,因為機器無法確定最終實現業務邏輯的代碼是否正確。另一方面,如果由大型模型來進行代碼審核,你會發現每次都會提出各種不同的改進點,但實際上這些改進點都是無關緊要的,無法確定邏輯的正確性。
大型模型在自動化測試案例和自動化測試方面也存在瓶頸。"TestPilot"是在學術界非常活躍的一個項目。大家可以參考康奈爾大學的兩篇有趣的文章,《大語言模型是有限執行測試者:探索基于LLM的通用錯誤再現》和《使用大語言模型進行自適應測試生成》,雖然這些文章對工程化使用還有一定距離。
當然,在自動化編程中還存在最后也是最難的一道關卡——責任問題,就像自動駕駛一樣。即使達到L5級別,如果出現問題,那么責任應該由誰來承擔呢?舉個例子,WhaleOps在實現了Txt2SQL功能之后,許多用戶提出了一個問題:為什么不將SQL執行結果直接轉化為業務部門所需的最終結果呢?這已經不是個技術問題,而是一個哲學問題了。不論是現在的ChatGPT準確率達到了90%,還是假設未來大模型能夠達到99.9999%的準確率,你敢直接用一句話讓它自動計算全公司的工資并自動與銀行對接發工資嗎?如果出了問題,你覺得是誰的責任?我們永遠不能指望技術可以解決所有的業務問題,大模型也不例外。
目前,我們正處于大型模型自動編程的初級階段。然而,相信在未來的3-5年里,自動化輔助編程將成為我們這一代開發者的標配工具。
如果在未來幾年內,你在研發過程中仍然只會進行CRUD操作,而不懂得如何充分利用大模型來擴展自己的經驗和業務理解,那么你將很快被那些懂得大模型編程的程序員所取代。他們可以將你的經驗和業務理解擴大十倍甚至百倍。不要等到35歲才發現,你已經成為那被淘汰的9個人中的一個。
當然,盡管有些言之過早,但大模型在編程提效方面的趨勢是不可阻擋的。飛算SoFlu軟件機器人作為自動化編程方面的探索者,會不斷深耕及沉淀,不斷改進開發領域中人與AI之間的關系。最終,這將使程序員、人工智能和技術研發過程更有效地為業務服務。






