去年的某一天,Cocos 的開發(fā)者交流群里突然爆發(fā)出一陣驚嘆,有人直呼“飯碗不保”,有人憂慮版權(quán)和保密問題,也有人給出了積極的反饋——
>>上下滑動查看更多
大家在討論的 Copilot 是 OpenAI 與 GitHub 聯(lián)合推出的一個 AI 自動編程工具,能根據(jù)上下文自動生成代碼,供編程者參考使用。Copilot 是利用網(wǎng)絡(luò)中現(xiàn)有的公開數(shù)據(jù),尤其是開源在 Github 上的代碼,然后基于機器學(xué)習(xí)算法訓(xùn)練出來的,理論上支持所有編程語言。
Copilot 究竟有多聰明?可以用?Copilot 編寫 Cocos 代碼嗎?讓 AI 去寫代碼是否靠譜?來看 Cocos 布道師熱心網(wǎng)友蔣先生、開發(fā)者 godxkey、插件 Cocos Inspector 作者 阿chuan 的使用經(jīng)驗與感受。
熱心網(wǎng)友蔣先生的 Copilot 使用嘗試
申請與接入
Copilot 目前已集成在 VSCode 中,但還處于測試階段,若想試用需要在 Copilot 官網(wǎng)上進行申請,一般1-2天左右即可通過申請。申請和接入 VSCode 的詳細流程可參考 godxkey 的分享:
https://forum.cocos.org/t/topic/133944
那么,Copilot 在實際開發(fā)中如何使用?阿chuan 從用 Cocos Creator + TypeScript 編寫游戲、以及用 Electron + JavaScript 編寫 Cocos 插件兩方面進行了嘗試,結(jié)果很是驚喜:在大部分情況下,Copilot 的 AI 很清楚你要做什么,通常會給出比較滿意的建議。
以下是 阿chuan 的分享實錄:
Cocos Creator + TypeScript
函數(shù)推導(dǎo)
可以看到,Copilot 很容易從函數(shù)名和上下文中知道你想干什么并且給出建議代碼。
接下來我們讓 label 變成紅色:
變成透明:
設(shè)置文本:
添加觸摸事件偵聽:
跳轉(zhuǎn)場景:
跳轉(zhuǎn)場景并添加回調(diào),厲害的是,Copilot 自動建議額外的 Complete 回調(diào):
計算節(jié)點距離,這個就很有用了如果不熟悉 Cocos 相關(guān) API 的同學(xué),只要寫好函數(shù)名,Copilot 自動幫你找到合適的 API,并給出完整代碼:
自動找到合適 API 畫圓:
添加鍵盤事件:
添加 ScrollView 事件:
添加 Slide 事件:
注釋推導(dǎo)
輸入注釋://get world pos, 自動給出合適的代碼,厲害了:
而根據(jù) godxkey 的測試,中文注釋同樣可以自動生成代碼:
上下文實時建議
剛編寫一個 let ani,Copilot 就自動給出了后面的代碼:
然后繼續(xù)編寫 ani.on,又自動給出 'finished’事件代碼:
但是 Copilot 不會提供箭頭函數(shù)的建議,可能是剛使用,Copilot 還不熟悉我的編程風(fēng)格。在注釋中要求后,Copilot 給出了:
但是,把注釋中的 Finish 改成 Last Frame 之后,AI 仍然給出 finished 事件的代碼,不知道是 AI 不完善,還是使用時間太短,還需要與開發(fā)人員互相磨合與調(diào)教。
Electron + JavaScript
最后嘗試一下用 Electron + JavaScript 編寫 Cocos Inspector 插件。簡單的函數(shù)推導(dǎo)看起來也還不錯:
但奇怪的是,可能因為 阿chuan 編寫 Cocos Inspector 使用的是 JavaScript,因此在很多情況下 Copilot 并不能有效推導(dǎo),甚至 AI 對 Electron 似乎也不熟,時常無法給出合理建議。
總結(jié)
Copilot 并不完美,但是合理調(diào)教下,還是可以提供有益的幫助,就像 Copilot 官網(wǎng)所說的一樣,似乎有一個 AI 在和你結(jié)對編程(Pair Programming)。
AI?可能會分析開發(fā)者使用的框架,這會降低開發(fā)者使用框架的門檻,許多 API 不需要查看文檔,直接通過注釋或者函數(shù)名即可推導(dǎo)出來。
Copilot 目前可能對偏強類型語言的分析更加準(zhǔn)確,比如 TypeScript、C#?等等。
AI 編程的出現(xiàn),讓開發(fā)者似乎感覺到了危機,對框架或引擎的熟悉已經(jīng)不再成為相對新手開發(fā)者的絕對優(yōu)勢,所以 阿chuan 覺得,開發(fā)者要開始多探索 AI 所不能觸及的領(lǐng)域了。
無論如何,Copilot 都是一個能幫助編程者提升效率的工具,但目前它的發(fā)展還遠遠未達到盡善盡美,因此勢必不能完全依賴 Copilot。除此之外,隨之可能產(chǎn)生的侵權(quán)、安全風(fēng)險等問題也需要大家持續(xù)關(guān)注。
GitHub?Copilot 官網(wǎng)
https://copilot.github.com/
點擊文末【閱讀原文】前往論壇專貼
https://forum.cocos.org/t/topic/133714
往期精彩
文章來源:http://www.zghlxwxcb.cn/news/detail-490818.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-490818.html
到了這里,關(guān)于寫注釋自動出代碼?!在Cocos中試水AI編程工具Copilot,摸魚神器or失業(yè)警告?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!