Github Copilot 的優點和侷限性 - hrithwik
幾個月以來,我一直試圖在 GPT3 的幫助下生成程式碼,最近獲得了一個名為Github copilot 的更好產品。
Github Copilot 是一個 VS Code 擴充套件,它可以自動完成你的程式碼,還可以透過檢視你的註釋和函式名稱來合成程式碼。這是使用相同的模型構建的,並在數十億的公共程式碼上進行了訓練。
當我告訴我的朋友關於 Github Copilot 時,我得到的第一個問題是
它可以解決 DSA 問題並幫助我破解 FAANG xD 嗎?
這很有趣,但我想嘗試一下,結果令人興奮。AI 可以解決大部分 DSA 問題,我在這裡分享了一些結果 。
後來我嘗試在一些實際的開發工作中使用 github copilot,比如編寫電子郵件驗證,對 github 進行 api 呼叫,甚至構建一個簡單的電子郵件傳送客戶端。
現在我對Copilot擅長這個動作的侷限性和事情有了一些清晰的認識。
優點
- 忘記語法?不用擔心。人工智慧支援你
在構建一個專案時,我忘記了傳送什麼響應的狀態程式碼,寫下關於它的評論給了我一個結果。此外,我寫了很長時間後的 python,有一次我忘記了slicing的語法,這也幫助了我。
- 可以幫助您進行電子郵件驗證和 API 呼叫
生成 用於呼叫某些 API 的簡單函式並編寫一些正規表示式程式碼 而無需學習或依賴文件真的很容易。(初學者不推薦)。
- 模板程式碼
它還可以幫助您獲得像 express 樣板程式碼一樣的東西,並且還幫助我編寫了一些 mongo 方案。
總的來說,我只是喜歡 Github Copilot 可以無縫地向您展示有關 vs 程式碼的建議。做得漂亮
缺點
用於第一代/測試版產品的 Github Copilot 太好了。但是網上有很多偏頗的文章,所以我也只是想展示另一面。
- 不遵循最佳實踐
合成的程式碼並不總是遵循最佳實踐,或者沒有經過最佳化以將其用於後端開發。就像在 Javascript 中,它生成var和== 而不是const和===,這會導致不同的錯誤和陰影。
- 版本衝突
某些生成的程式碼可能不適用於您的程式碼庫所在的版本,並可能導致衝突。此外,有時 AI 會發出很多不必要的程式碼。有經驗的開發者絕對可以解決這個問題,但是如果一個新手直接在 AI 的幫助下開始,他會花更多的時間在堆疊溢位上而不是編寫實際程式碼。
- 奇怪的版權資訊
當我嘗試生成將連結串列轉換為樹的程式碼時,這就像一個著名的 DS 問題,我開始 AI 開始展示受版權保護的程式碼,它來自一個叫 Stephen 的人。
總結
如果您想建立諸如電子郵件驗證或使用者架構或 API 請求之類的功能,那就太好了,因為它有足夠的資料,但同樣,某些程式碼可能效率不高。它可以幫助您破解 DSA演算法問題?它可以幫助您根據需要提供積木。它會取代人類嗎?它是一個副駕駛,讓您的生活更輕鬆。您是能夠理解人類敘事和故事以從程式碼構建產品的飛行員。
在使用它編寫我的專案程式碼 2 個多小時後,我已經習慣了副駕駛,以至於沒有使用 github copilot 建議,我真的不知道我的程式碼接下來要寫什麼。我有點害怕,這是一個陷阱,使開發人員甚至懶惰。
相關文章
- 自動化測試的優勢和侷限性有哪些
- TCP的侷限性有哪些?TCP
- 微服務說的侷限性微服務
- 論深度學習的侷限性深度學習
- [譯] 深度學習的侷限性深度學習
- Apache Spark有哪些侷限性ApacheSpark
- 計算形式化和表徵也有侷限性
- 遠端控制軟體 TeamViewer 的侷限性和替代方案View
- 流程卡的應用及其侷限性
- Go 1.18泛型的侷限性初探Go泛型
- JavaScript 微觀效能測試、歷史和侷限性JavaScript
- Visual Studio Code 和 GitHub CopilotGithub
- Flutter不能做什麼:侷限性Flutter
- 公民資料科學家的侷限性資料科學
- 計算機視覺應用:深度學習的力量和侷限性計算機視覺深度學習
- PLM對解決“資訊孤島”問題的意義和侷限性
- Android應用視窗突破手機侷限性Android
- GitHub Copilot 更新:支援 PyCharm、IntelliJ IDEA 和 NeovimGithubPyCharmIntelliJIdea
- [譯]Object的侷限性——Kotlin中的帶參單例模式ObjectKotlin單例模式
- Github Copilot 結合python的使用GithubPython
- [AI開發]影片結構化類應用的侷限性AI
- 如何突破傳統升級系統在RPG中的侷限性?
- 瞭解有關符號人工智慧,象徵性AI的好處和侷限性符號人工智慧AI
- Java泛型(三):型別擦除帶來的約束與侷限性Java泛型型別
- 一起暢玩 GitHub CoPilotGithub
- github copilot如何幫助寫程式碼Github
- 【譯】使用 GitHub Copilot 編寫 Git 提交Github
- 相比國科雲解析,傳統DNS解析技術有哪些侷限性?DNS
- 【譯】Visual Studio 中的 GitHub Copilot:2023年回顧Github
- 【譯】使用 GitHub Copilot 作為你的編碼 GPSGithub
- GitHub Copilot:你需要知道的一切 - RawatGithub
- 深度學習在視覺上的侷限性以及我們如何對付它們深度學習視覺
- 基於雲技術的域名解析系統研究:傳統解析技術的侷限性
- 【圖機器學習】cs224w Lecture 16 - 圖神經網路的侷限性機器學習神經網路
- 【譯】如何在 Visual Studio 中安裝 GitHub CopilotGithub
- GitHub Copilot 似乎違反了開源許可證的規定Github
- Github Copilot機器人寫的程式碼引發糾紛Github機器人
- 搞懂Java橋接模式,打破繼承侷限性,輕鬆實現多維變化Java橋接模式繼承