1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Github 王炸功能!Copilot 替代打工人編程?

        共 3664字,需瀏覽 8分鐘

         ·

        2021-11-15 03:41

        相信所有的打工人在寫代碼的時候都會遇到很多問題,這些問題也許是自己從來不了解的,也許是了解一點但是還不熟悉的,也許是之前了解的但是忘記了。

        遇到上面的問題,相比大部分人的第一想法是:Google 和百度了!

        比如我想搜索如何使用 Twitter 提供的 API 獲取一些有意思的推文來開發(fā)我的應(yīng)用。

        而更深入一點,第二個想法可能就是:查文檔了。

        比如通過 Svelte 的文檔了解如何編寫一個簡單的組件。

        但是有些文檔經(jīng)常寫的很冗長,且沒有提供搜索,如果只是想簡單找到某個 API 的用法就會很困難;而好一點的文檔可能提供比較方便的搜索功能,這樣可以或多或少減少解決問題的時間。

        比如 Vue 的文檔,提供方便的搜索功能。

        上述方法我們一直都在使用,但是問題就是需要頻繁切換,來回查找,一般人寫代碼的時候可能需要專注思考,如果頻繁在搜索引擎頁面、文檔頁面與代碼編輯器進行切換,就會打斷思路。

        上述的場景很熟悉對吧??? 是不是本來就不大的桌面,還窗口滿天飛。

        基于上述痛點,全球最大的同性交友網(wǎng)站 Github 發(fā)布了 Github Copilot!一個全新 AI 代碼助手,在編輯器中寫代碼或編寫注釋描述代碼時,自動為你生成接下來需要編寫代碼的提示,讓你無需再進行各種搜索、查文檔的操作,所有的操作都在編輯器里完成!

        先來一個直觀的例子了解一下 Github Pilot 有多強大吧。

        上述代碼中寫了一段注釋,描述要寫一個判斷函數(shù),使用 Web 服務(wù)獲取一段文本,判斷這段文本的感情是積極的還是消極的,然后引入了 fetch 函數(shù)用于抓取本文內(nèi)容,寫了函數(shù)名給定了輸入和返回值的類型,然后突然 Github Copilot 就把接下來可能要寫的代碼給生成好了!Amazing!

        可以看到生成的代碼不是胡亂而沒有邏輯的,它使用了 fetch 去抓取對應(yīng)的鏈接,然后使用 await 處理異步請求,拿到結(jié)果之后通過結(jié)果中的內(nèi)容判斷是否文本所帶的感情是積極的,更棒的是它還能自己給出要抓取的鏈接,都不需要自己去盲目的搜索 ??,高效!

        上述代碼如果需要一個工程師直接寫的話,可能首先得了解 fetch 的用法,然后將用法復(fù)制過來使用,接著去百度、Google 去找一下那些 API 服務(wù)可以使用,然后了解這個 API 服務(wù)的返回體長什么樣子,才能寫出上面的代碼。

        好家伙,CV 工程師直接下崗,產(chǎn)品經(jīng)理也能寫代碼了。

        除了上面根據(jù)注釋自動生成代碼外,其實 Github Copilot 還有很多有意思的功能,接下來我們就來一一了解一下。

        特性

        去掉復(fù)雜??

        當你在寫一些重復(fù)代碼時,Github Copilot 會自動為你填充接下來你可能要寫的代碼:

        來點測試????♂?

        一段健壯的代碼需要完善的測試,但是編寫單元測試有時候是冗長無味的,但是 Github Pilot 能帶給你一些不一樣的體驗,只需要導(dǎo)入你的單元測試包,然后它就會為你寫的代碼生成對應(yīng)的測試代碼:

        畫個圖吧???

        只要你導(dǎo)入對應(yīng)的包,然后給定合理的命名,Github Copilot 就能寫出接下來你可能想寫的代碼,比如導(dǎo)入 D3,然后寫一個 drawScatterplot 變量,就能生成如下代碼:

        除了 JS、Python,還有更多???

        得益于 Github 為全球最大的代碼庫,包含各種各樣最全面、最新鮮的代碼,Github Copilot 能夠支持各種語言的生成,如 JS、Python、Ruby、TypeScript、Go 等等。

        成為 Tab 工程師???

        上述我們知道 Github Copilot 可以根據(jù)注釋生成代碼、自動填充重復(fù)代碼、為你的代碼生成測試,基本解決了你在寫代碼時可能需要的各種需要打開多個窗口的問題,這些特性降低了新人學(xué)習(xí)編程的,以及了解一個庫了,想學(xué)習(xí)新的語言和庫的門檻。

        但是有時候 Github Copilot 第一次生成的代碼并不是你想要的,這個時候它也為你提供了可選項,你可以通過 option+] (在 Windows 上是 Alt )選擇下一個,option+[ 選擇前一個,Tab 來接受 Github Pilot 為你推薦的代碼。

        所以說,CV 工程師轉(zhuǎn)崗成為 Tab 工程師了???

        從此鍵盤只有 Tab??。

        我能使用???

        答案是可以,但是不能馬上使用。

        因為 Github Pilot 強大的背后是使用了非常昂貴的硬件設(shè)備作為支撐,所以消耗巨大,所以目前只開放給少部分人使用,用于了解用戶如何使用它以及探索如何規(guī)模化商用的模式。

        但是根據(jù)我和我周圍同事的經(jīng)驗,基本只要申請了都能通過使用,但是從申請到通過還有一段時間,大概需要 1-2 天。

        如何申請?

        訪問 https://copilot.github.com/ ,點擊注冊:

        然后關(guān)聯(lián)你的 Github 賬號,進行申請,最后會收到這樣的提示:

        上面提示已經(jīng)加入等待列表,等待正式的郵件通知就可以使用了。

        如果你已經(jīng)申請通過了,那么接下來就需要在編輯器里面下載對應(yīng)的插件,目前 Github Copilot 只支持 VSCode、JetBrains 編輯器、Neovim,后續(xù)將會支持更多的編輯器,所以如果你想體驗功能,那么你需要下載對應(yīng)的編輯器。我們以 VSCode 為例,打開編輯器在擴展里面搜索 Github Copilot,或訪問 https://marketplace.visualstudio.com/items?itemName=GitHub.copilot 鏈接下載:

        安裝完之后,當你新建一個文件或打開一個文件編輯時,編輯器右下角會提示 Github Copilot 需要請求 Github 登錄授權(quán):

        你只需要點擊登錄,然后在打開的 Github 授權(quán)網(wǎng)站使用你剛剛申請 Github Copilot 的 Github 賬號登錄進行授權(quán)即可。

        好了,大功告成!接下來你就可以使用你熟悉的語言開始寫代碼了,然后享受 Github Copilot 夢幻般的代碼提示吧!偷偷的告訴你,我身邊的同事用了都說好 ??。

        背后的原理

        相信很多小伙伴看到這里都會很好奇,Github Copilot 這么智能,背后是如何實現(xiàn)的呢?

        其實 Github Copilot 基于 OpenAI 提供的 CodeX AI 模型,使用大量的開源代碼與互聯(lián)網(wǎng)上的自然語言進行訓(xùn)練,使得它能夠比其他代碼助手更加的智能,能夠從你當前正在編輯的文件中理解代碼和自然語言(如注釋)的上下文,然后根據(jù)訓(xùn)練所學(xué)的知識,給出它認為最合理的幾個答案(代碼)。

        Github Copilot 給出代碼提示的大致的過程如下:

        簡單剖析一下就是:

        1. 先使用 OpenAI 的模型 CodeX 提取公網(wǎng)代碼與互聯(lián)網(wǎng)的文本為語料進行訓(xùn)練
        2. 然后使用 Github Copilot 作為服務(wù)提供層
        3. 接著用戶將插件下載到編輯器,在寫代碼時激活 Github Copilot 服務(wù),將代碼上下文發(fā)給 Github Copilot 服務(wù),然后獲取代碼建議
        4. 用戶可以選擇自己想要的代碼選項,或?qū)ι傻拇a進行修改以滿足自己的需求,而這些選擇和修改記錄也會發(fā)送給 Github Copilot 服務(wù),以幫助 AI 模型變得更加智能

        你需要注意的??

        Github Copilot 雖然很強大,但是在使用時也會有一些問題需要注意?????♀?。

        Github Copilot 會取代程序員嗎?

        不會,Github Copilot 主要的作用是輔助程序員編碼,減少一些冗余的手工勞動,專注于有意思問題的解決,讓程序員更具有生產(chǎn)力。

        Github Copilot 生成的代碼具有知識產(chǎn)權(quán)嗎?

        沒有,你可以把 Github Copilot 作為一個編譯器或者更加底層的東西,它給你提供建議,幫助你寫更好的代碼,最后的代碼所有權(quán)歸你自己所有。

        我能將 Github Copilot 生成的代碼用于生產(chǎn)環(huán)境嗎?

        可以,但是建議你對待這些代碼就像是你寫的一樣,對其進行嚴格的測試、代碼審查,因為用于訓(xùn)練 AI 模型的語料可能是過時的、有問題的,雖然 Github Copilot 會對其進行不斷的迭代并設(shè)置一些規(guī)則確保有問題的、過時的代碼不會生成,但是也很難完全保證這些規(guī)則能覆蓋所有的情況。

        Github Copilot 會獲取我的私人數(shù)據(jù)?侵犯我的隱私嗎?

        不會,Github Copilot 目前只會分析你編輯文件內(nèi)容的上下文,同時設(shè)定了嚴格的私人信息的過濾規(guī)則,如將私人郵箱數(shù)據(jù)替換成通用的郵箱格式 [email protected] 等,而不會分析你電腦上其他的數(shù)據(jù),同時在給你推薦生成的代碼時,也會對代碼進行嚴格的過濾。

        同時上傳的內(nèi)容也只會保存到 Github Copilot 的數(shù)據(jù)庫,不會開放給其他人使用。

        瀏覽 55
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            免费成人黄色片 | 亚洲无码18禁 | の乳色吐息在线无修观看 | 亚洲v在线 | 公交车她被揉的开始呻吟起来视频 | 娇妻被摁在床狠c | 操初中女生 | 国产一级a一毛a成人免费视频 | 日韩福利在线观看 | 国产久久久久久 |