前言
本篇文章致力于讓更多的程序員們在生產(chǎn)實(shí)踐中能節(jié)約更多的寶貴時間,更快、更安全地構(gòu)建應(yīng)用程序而發(fā)布。Amazon CodeWhisperer它提供了智能提示、代碼自動補(bǔ)全和錯誤檢測等功能,以支持開發(fā)人員的編碼工作。在這里勇哥我特意的推薦給大家,讓大家使著舒心,用的開心,并且當(dāng)前還在活動期間,只要完成一些實(shí)踐的上手操作,不僅僅能讓大家掌握一個很好的插件編碼開發(fā)助手,還能用積分兌換一些禮品。
那么接下來我會完整的進(jìn)行Amazon CodeWhisperer各種提示功能的測試,幫助大家更好的了解以及使用這款插件。
Amazon CodeWhisperer概述
Amazon CodeWhisperer 作為智能編程助手,經(jīng)過數(shù)十億行代碼的訓(xùn)練,可以根據(jù)注釋和現(xiàn)有代碼實(shí)時生成從代碼片段到全函數(shù)的代碼建議。此外,CodeWhisperer 可以標(biāo)記或篩選類似開源訓(xùn)練數(shù)據(jù)的代碼建議,獲取相關(guān)開源項(xiàng)目的存儲庫 URL 和許可證,開發(fā)者可以輕松地查看它們并添加歸因。更重要的是,CodeWhisperer 可以掃描代碼來檢測難以發(fā)現(xiàn)的漏洞,獲取代碼建議來立即修復(fù)這些漏洞。最貼心的是,CodeWhisperer 支持 Python、Java 和 JavaScript 等15 種編程語言,還有支持 VS Code、IntelliJ IDEA、Amazon Cloud9、Amazon Lambda 控制臺、JupyterLab 和 Amazon SageMaker Studio 等集成式開發(fā)環(huán)境。
這個是官方給予的說法,我個人進(jìn)行了一個大致的全盤測試,用我的話術(shù)來總結(jié)的話就是:
1.Amazon CodeWhisperer可以通過分析給定的代碼和上下文信息,提供有關(guān)代碼結(jié)構(gòu)、函數(shù)和變量的建議。它可以幫助開發(fā)人員在編寫代碼時更快地找到錯誤并提供可能的解決方案。
2.只要給予正確的提示內(nèi)容,本產(chǎn)品可以加快至少一倍的開發(fā)速率。很多算法也能直接出提示,免去了各種二次編碼的繁雜操作,省心、省力、省時,是一款非常Nice的【AI 編程助手】。
插件安裝
這里我們選擇使用【Visual Studio Code】來完成這次示例,編碼語言我們會進(jìn)行多種嘗試,但是主要是Java、Python等常用的語言,畢竟是為了更好的服務(wù)于大家嘛~為大家做出有價值的貢獻(xiàn)。
整體安裝步驟體驗(yàn)感
1.操作步驟相對簡略,主要就是安裝插件、選擇功能、登錄賬號、激活使用。并且全程英文提示也比較貼心,沒有什么很陌生的詞匯,都能靠基本常識分析出來,對新程序員非常的友好,對老程序員來說就是更容易上手。
2.各類操作的按鈕大小顏色也都比較突出,部分操作做了高亮處理,非常的人性化,很舒服,我個人喜歡哪個藍(lán)色的大大的登錄按鈕,一眼就看到了,非常的直接、干脆。
插件搜索
我們打開【Visual Studio Code】后,選擇【擴(kuò)展】功能(左側(cè)列表的第五個功能),搜索【CodeWhisperer】,由于這個搜索是異步操作的,直接會顯示【AWS Toolkit】的這個插件,我們直接點(diǎn)擊【安裝】按鈕。
我們可以在左側(cè)列表的最后一個功能上看到新安裝上的【aws】功能插件,右側(cè)可以看到對應(yīng)的時間版本。
登錄Amazon CodeWhisperer
這里我們點(diǎn)擊進(jìn)入【aws】功能,看好了,需要在【CodeWhisperer】處點(diǎn)擊【Start】,點(diǎn)擊完畢后右側(cè)菜單中的第二個帶鎖的【CodeWhisperer: AI-powered code suggestions】就會被展開,需要我們進(jìn)行登錄操作,沒有賬號的直接注冊就可以,很方便的。
點(diǎn)擊【Proceed To Browser】,是繼續(xù)的意思。
打開外部網(wǎng)站,需要登錄。
點(diǎn)擊【Confirm and continue】即可,這里是授權(quán)操作。
選擇【注冊】與【登錄】。
是否允許,翻譯成【允許AWS VSCode工具包訪問您的數(shù)據(jù)嗎?】這里我們需要點(diǎn)擊【Allow】代表允許。
很人性的讓我們稍等一會,很快的,不用切換頁面。
也就幾秒鐘過后就能看到告訴咱們可以在VSCode中使用【AWS Toolkit】了。
查看【AWS Toolkit】在【Visual Studio Code】中的狀態(tài),這里已經(jīng)不是【Start了】。
如果是第一次登錄成功,會有一個提示。
登錄后會自動前置我們已經(jīng)解鎖的功能,接下來我們具體的使用【人工智能代碼建議】進(jìn)行測試。
人工智能代碼建議——Python自動補(bǔ)全測試
這里我查閱了【Amazon CodeWhisperer Workshop】,下面是總結(jié)的內(nèi)容。
在編寫應(yīng)用程序開發(fā)代碼時,開發(fā)人員必須掌握來自亞馬遜云科技、Stripe 和 Twilio 等提供 商的多個編程語言、框架、軟件庫和熱門云服務(wù)。雖然開發(fā)人員可以利用 Stack Overflow 和 GitHub 等開發(fā)人員社區(qū)中提供的代碼片段,但搜索這些片段,然后根據(jù)其特定任務(wù)自定義代 碼是一個手動且耗時的流程。作為開發(fā)人員,您在完成這些任務(wù)的同時,必須確保您遵循正確 的編程語法和最佳編碼實(shí)踐。
Amazon CodeWhisperer 是面向開發(fā)人員的機(jī)器學(xué)習(xí)驅(qū)動的編碼助手,憑借該服務(wù),您可以克 服這些挑戰(zhàn)。開發(fā)人員可以使用通俗易懂的英語簡單地編寫注釋,以概述特定任務(wù),比如“upload a file to S3”。根據(jù)該注釋,CodeWhisperer 會自動確定哪些云服務(wù)和公共庫最適合該指定任 務(wù),動態(tài)構(gòu)建具體代碼,并直接在 IDE 中建議生成的代碼片段。此外,CodeWhisperer 與您 的 Visual Studio Code 和 JetBrains IDE 無縫集成,使您能夠保持專注,無需離開開發(fā)環(huán)境。 在寫這篇文章時,CodeWhisperer 支持 Python、Java、JavaScript、TypeScript、C#、Go、 Rust、PHP、Ruby、Kotlin、C、C++、Shell 腳本、SQL 和 Scala。
觸發(fā)快捷鍵說明
- 觸發(fā)提示的快捷鍵是【ALT+C】,如果是MacOS系統(tǒng)的話就需要使用【Option + C】了。
- 通過按 Tab 鍵,接受代碼建議。
- 通過按 Esc 鍵 或鍵入一個字符,放棄建議。
- 在接受或編寫新代碼后,再次點(diǎn)擊 Enter 鍵,獲取下一行建議代碼。
- 將光標(biāo)放在注釋或代碼行后面,點(diǎn)擊 Enter 鍵,激活 CodeWhisperer。
最后一個快捷操作我特別的加粗了一下,這個最開始沒有發(fā)現(xiàn),無意中發(fā)現(xiàn)的,是非常好用的哦,自己嘗試的時候一定要試試。
根據(jù)函數(shù)名稱
我們先試用Python語言測試一下,可以看到我們創(chuàng)建了一個py文件,僅僅寫了一個def,它默認(rèn)給了后面的add函數(shù)提示,但是很明顯這個add函數(shù)不是我們想要的內(nèi)容,例如,我們想要一個判斷三個值其中哪個是最大值的函數(shù)。
目標(biāo):自動生成判斷三個值其中哪個是最大值的函數(shù)。
完成效果可以參考上圖,圖片中我們能看到對應(yīng)的代碼提示內(nèi)容,可以說是完整的表達(dá)了函數(shù)名稱所要完成的內(nèi)容,目標(biāo)達(dá)成。
根據(jù)注釋內(nèi)容
根據(jù)注釋內(nèi)容應(yīng)該是更為精準(zhǔn)的自動補(bǔ)全使用方法,畢竟注釋的內(nèi)容可以寫很多,但是在【Amazon CodeWhisperer Workshop】文檔中我們可以看到【可以使用通俗易懂的英語簡單地編寫注釋】字樣,說明我們得用英文來書寫提示內(nèi)容,這個對于英語一般的初級程序人員來說還是比較吃力的,對于我們這幫老人來說很多的時候都是編寫新的業(yè)務(wù)邏輯與算法,其實(shí)真正的幫助都是固定的一些算法。但是我們還沒有嘗試中文是否可行呢,具體的看測試結(jié)果
英文注釋
注釋內(nèi)容的目標(biāo)是從大到小排列數(shù)組。
#have a array please Arrange from large to small
測試自動生成函數(shù),可以在結(jié)果上看到測試的數(shù)據(jù)【從大到小排列】,給予的算法是【選擇排序】
中文注釋
#用冒泡排序?qū)懸粋€數(shù)組從小到大的函數(shù)
運(yùn)行以下看效果:
說從小到大排列就是從小到大,沒有問題的。
我們獲取一個稍微復(fù)雜一個的測試:【# 人臉識別函數(shù)】,可以看到給予了cv2包的提示以及簡單的函數(shù)處理,不過并沒有對人臉進(jìn)行識別,只是對圖像做了一定的灰度以及壓縮處理,有沒有其它的提示呢?
我先安裝了cv2,【pip install opencv-python】,這次在等待的過程中發(fā)現(xiàn)了提示代碼的切換操作。
提示代碼切換
觸發(fā)條件,當(dāng)我把鼠標(biāo)放置在灰色代碼區(qū)域的時候出現(xiàn)了一個提示,很明顯是左右切換代碼提示的。我實(shí)驗(yàn)了一下,挺好用。
發(fā)現(xiàn)過程,這里使用的注釋是【# 寫一個字符串全排列函數(shù)】,寫了一個def,后面給了函數(shù)名稱,當(dāng)通過tab獲取函數(shù)名稱后我的鼠標(biāo)正好懸停在灰色代碼上,故而發(fā)現(xiàn)的這個提示功能。
這個功能可以直接切換代碼提示,但是快捷鍵是可以繼續(xù)優(yōu)化的,非常棒的功能,這里得點(diǎn)個贊。
測試結(jié)果:很明顯,當(dāng)字符串的長度為3時,結(jié)果是6個,說明正確。
Java語言示例
我們來創(chuàng)建一個Java文件測試一下:
例如:我們在main函數(shù)內(nèi)寫一個值交換的示例。
寫一個值交換的注釋
使用異或來完成值交換
稍微復(fù)雜的一些算法提示,這里我使用的是Java的方法注釋,發(fā)現(xiàn)沒問題,成功生成。
JavaScript語言示例
我這里沒有使用注釋的方法,使用的是函數(shù)名稱來處理,發(fā)現(xiàn)js依然是可以行得通的。
我們生成一個嵌套循環(huán)試試:
嵌套循環(huán)生成的沒有問題,并且是根據(jù)我們所編寫的注釋而完成的代碼,因?yàn)榭梢钥吹接凶詈蟮膁ocument.wirte輸出字樣,已經(jīng)完成我們的目標(biāo)內(nèi)容。
小應(yīng)用測試
我們用Python語言寫一個小爬蟲,爬取一篇小說測試一下完整性。
各種提示然后回車后基本都可以tab自動生成,如果不提示就【ALT+C】再次生成,更換代碼的話需要將光標(biāo)放在注釋或代碼行后面,點(diǎn)擊 Enter 鍵,激活 CodeWhisperer。這幾個操作多做幾遍就熟悉了。
這里貢獻(xiàn)上我的代碼。這個是某個網(wǎng)站的單獨(dú)下載方式,不通用哦。
Python |
總結(jié)
我們依次進(jìn)行了Python語言、Java語言以及JavaScript語言的測試,操作的步驟基本相同,但是給予的代碼都是基本符合我們的需求內(nèi)容,主要是咱們僅僅是一步安裝,并沒有根據(jù)不同的語言逐一修改,這就非常方便了,兼容性是非常的棒。
在英文注釋的基礎(chǔ)上我們進(jìn)行了中文注釋的提示測試,依然是可以正常完成代碼提示的,說明當(dāng)前的這個版本肯定是有了一定的優(yōu)化,也方便了程序小白的使用,并且在操作過程中找到了【提示代碼切換】的操作,這個操作就很美,如果能在快捷鍵使用上再優(yōu)化一下就更完美了。
綜上所述符合省心、省力、省時的說法,絕對是一款非常Nice的【AI編程助手】。
當(dāng)前還在活動中,只要完成一些實(shí)踐的上手操作,不僅僅能讓大家掌握一個很好的插件編碼開發(fā)助手,還有很多好禮相贈,盡快去參加吧。
活動地址文章來源:http://www.zghlxwxcb.cn/news/detail-712970.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-712970.html
到了這里,關(guān)于Amazon CodeWhisperer——省心、省力、省時的AI編程助手的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!