市面上的AI寫代碼
GitHub +OpenAI 出品的Copilot:https://copilot.github.com/
Tabnie:Code Faster with AI Code Completions | Tabnine
Kite:https://github.com/kiteco,2022.11.16已停止服務
Machine Learning Code Completion:jetbrains系列自帶的插件
支持工具:jetbrains全系列,vs/vscode,也就是常見的編程工程都支持
支持語言:目前常見的編程語言都支持
網易自研的
網易自研的CodeMaker:CodeMaker 智能開發平臺 (netease.com)
網易自研的AIRCoder:https://aircoder.netease.com/
AI輔助寫代碼
適用場景
- 一些常用的接口和代碼邏輯,自動補全
- 可以根據寫註釋、或者註釋+函數名,自動補全
- 重複性的或者相似性較高的代碼,幾乎可以一鍵補全(比如增刪查改的接口)
- 一些API忘了怎麼寫,需要Google的時候
不適用場景
- 複雜邏輯的場景基本不適用
- 代碼上下文相似度較小的場景不適用
- 保密需求高的項目不適用
一些弊端
- 代碼需要嚴格Review,可能引入隱藏Bug
- 非必要的代碼提示過於頻繁,影響正常編碼
- 新手過於依賴,不利於編碼能力的提升
- 有保密項目和敏感代碼應該嚴禁使用
安全
對於我們來說,最關心的問題就是我們的代碼會不會被用來訓練。根據Copilot安裝的時候的設置項,有一個勾選框:Allow Github to use my code snippets for product improvements. 可以不勾選這個。
價格
之前Copilot在內測期間一直是免費的,但是最近開始收費,有60天的試用期,之後每月10美元。
Tabnie可以免費使用
總結
綜合來看,越是重複性代碼較多、程序結構相對固定、相對通用的開發場景,Copilot可以提升的效率越爲明顯。而越是創新性較強、代碼原創性高、或者公司內部特有的一些開發場景,則Copilot提升效率較爲有限。
相反,如果是一些更爲通用的開發場景,項目的保密程度不高,可以接受上面提到的隱私性問題,那麼10%左右的效率提升還是相當可觀的一個提升