在 Amazon CodeWhisperer 正式發布后,許多客戶都已經使用它來簡化和精簡其軟件開發方式。CodeWhisperer 使用由根基模型提供支持的生成式人工智能來理解代碼的語義和上下文,并提供相關且有用的建議。它有助于更快、更安全地構建應用程序,并且可以在不同層面提供幫助,從小建議到編寫完整的函數和單元測試,幫助將復雜的問題分解為更簡單的任務。
想象一下,您想提高代碼測試覆蓋范圍或為應用程序實施細粒度的授權模型。當您開始編寫代碼時,CodeWhisperer 將在后臺運行。它可以理解您的注釋和現有代碼,提供從代碼段到整個函數或類的實時建議。這種即時幫助會根據您的流程進行調整,減少了在搜索解決方案或語法提示時進行上下文切換的需要。在開發過程中,使用編碼助手可以提高專注度和工作效率。
當您遇到不熟悉的 API 時,CodeWhisperer 可以為您提供相關的代碼建議,從而加快您的工作速度。此外,CodeWhisperer 還具有全面的代碼掃描功能,可以檢測難以發現的漏洞并提供修復建議。這與全球開放應用程序安全項目(OWASP)概述的最佳實踐一致。這不僅使編碼更高效、更安全,還讓工作質量更有保證。
CodeWhisperer 還可以標記類似于開源訓練數據的代碼建議,并標記和刪除可能被認為有偏見或不公平的有問題的代碼。它為您提供相關開源項目的存儲庫 URL 和許可證,使您可以更輕松地查看它們并在必要時添加歸因。
下面提供了幾個 CodeWhisperer 實際應用的示例,這些示例涵蓋了軟件開發的不同領域,從原型設計和入門到數據分析和權限管理。
CodeWhisperer 可加快原型設計和入職培訓
一個以有趣的方式使用 CodeWhisperer 的客戶是 BUILDSTR,這是一家提供專注于平臺開發和現代化的云工程服務的咨詢公司。他們在后端使用 Node.js 和 Python/ target=_blank class=infotextkey>Python,在前端主要使用 React。
我與 BUILDSTR 的聯合創始人 Kyle Hines 進行了交談,他說:“在對不同客戶不同類型的開發項目利用 CodeWhisperer 的過程中,我們已經看到了它對原型設計的巨大影響。例如,我們能夠以極快的速度為與其他亞馬遜云科技服務(例如 Amazon DynamoDB)交互的 Amazon Lambda 函數創建模板,這給我們留下了深刻的印象”。 Kyle 說,他們現在在原型設計上花費的時間減少了 40%,而且他們注意到客戶環境中存在的漏洞數量減少了 50% 以上。
Kyle 補充說:“由于招聘和培養新人才是咨詢公司的一項長期工作,因此我們利用 CodeWhisperer 對新開發人員進行入職培訓,它幫助 BUILDSTR Academy 將入職培訓的時間和復雜性減少了 20% 以上。”
CodeWhisperer 用于探索性數據分析
Wendy Wong 是一名業務績效分析師,在 Service NSW 和 AI 敏捷項目中構建數據管道。由于她對社區的貢獻,她還被評為了 亞馬遜云科技數據大俠。她表示,當她使用統計和可視化工具分析數據集以獲取其主要特征的摘要時,Amazon CodeWhisperer 顯著加快了探索性數據分析過程。
她認為 CodeWhisperer 是一個快速、用戶友好且可靠的編碼助手,可以準確地推斷出她編寫的每一行代碼的意圖,并最終通過其最佳實踐建議幫助提高代碼質量。
“使用 CodeWhisperer,我不必記住每一個細節,因為它可以準確地自動完成我的代碼和注釋,大大簡化了代碼編譯”,她分享道,“以前,我需要花 15 分鐘來設置數據準備預處理任務,但現在只需要 5 分鐘就能準備好”。
Wendy 說,通過將這些重復的任務委托給 CodeWhisperer,她的工作效率得到了提高,她寫了一系列文章來解釋如何使用 CodeWhisperer 來簡化探索性數據分析。
另一個用于瀏覽數據集的工具是 SQL。Wendy 正在研究 CodeWhisperer 如何為不是 SQL 專家的數據工程師助力。例如,她注意到他們只需要求其“寫入多個聯接”或“編寫子查詢”就可以快速獲得要使用的正確語法。
CodeWhisperer 可加快測試和其他日常任務
我有幸與亞馬遜云科技開發人員關系平臺團隊的軟件工程師共事了一段時間。這個團隊的工作內容包括構建和運營 community.aws 網站。
Nikitha Tejpal 的工作主要圍繞 TypeScript,CodeWhisperer 可以在她輸入時提供有效的自動完成建議,從而幫助她完成編碼過程。她說她特別喜歡 CodeWhisperer 幫助進行單元測試的方式。
“我現在可以專注于編寫正面測試,然后使用注釋讓 CodeWhisperer 為相同的代碼提供負面測試建議”,她說,“這可以將我編寫單元測試所需的時間縮短 40%”。
她的同事 Carlos Aller Estévez 依靠 CodeWhisperer 的自動完成功能為他提供一兩行代碼建議,以補充他現有的代碼,然后,他再自行判斷是接受還是忽略這些代碼。其他時候,他會主動利用 CodeWhisperer 的預測功能為他編寫代碼。“如果我明確想讓 CodeWhisperer 為我編碼,我會寫一個方法簽名,并在注釋中說明我的需求,然后等待自動完成”,他解釋說。
例如,當 Carlos 的目標是檢查用戶是否擁有給定路徑或其任何父路徑的權限時,CodeWhisperer 根據 Carlos 的方法簽名和注釋為部分問題提供了一個巧妙的解決方案。生成的代碼會檢查給定資源的父目錄,然后創建所有可能的父路徑的列表。然后,Carlos 對每條路徑進行了簡單的權限檢查,以完成實施。
“CodeWhisperer 可以幫助我處理算法和實施細節方面的工作,這樣我就有更多時間思考大局,例如業務需求,并創建更好的解決方案”,他補充說。
CodeWhisperer 是一名多語言團隊合作者
CodeWhisperer 通曉多種語言,支持 15 種編程語言的代碼生成:Python、JAVA、JavaScript、TypeScript、C#、Go、Rust、php、Ruby、Kotlin、C、C++、Shell 腳本、SQL 和 Scala。
CodeWhisperer 還是一名團隊合作者。除了 Visual Studio (VS) Code 和 JetBrains 系列 IDE(包括 IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm 和 DataGrip)之外,CodeWhisperer 還可用于 JupyterLab、Amazon Cloud9、Amazon Lambda 控制臺和 Amazon SageMaker Studio。
在亞馬遜云科技,我們致力于通過投資開發新服務來滿足客戶的需求,幫助客戶將負責任的人工智能從理論轉變為實踐,讓他們能更輕松地識別和緩解偏見,提高可解釋性,并幫助保持數據的私密性和安全性。