<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          自動寫代碼?別鬧了!

          共 2655字,需瀏覽 6分鐘

           ·

          2022-04-17 22:52

          大家好,我是良許。
          這幾天,GitHub 上有個很火的插件在抖音刷屏了——Copilot。
          這個神器有啥用呢?簡單來講,它就是一款由人工智能打造的編程輔助工具。
          我們來看看它有啥用。
          首先就是代碼補(bǔ)全功能,你只要給出函數(shù)名和參數(shù),Copilot 就會自動幫你補(bǔ)全代碼。
          第二個功能,就是它可以根據(jù)注釋來寫代碼。也就是說,你只要把注釋寫好,它就會自動幫你生成對應(yīng)的代碼,嚇人吧~
          除此之外,它還可以自動生成重復(fù)性代碼、自動生成測試代碼,同時也可以生成多套代碼方案供你選擇。
          目前支持多種開發(fā)語言,包括 Python, JavaScript, TypeScript, Ruby, Java, Go等等,支持VS Code,Neovim,JetBrains 等 IDE。
          目前還沒有完全開放,處于邀請制狀態(tài)。前幾天我看到了這個插件并申請了,但是目前還沒通過,所以想看演示的話大家可以上 B 站,很多大佬做了測評。
          看到這個插件這么強(qiáng)大的功能,很多程序員已經(jīng)嚇傻了,這么強(qiáng)大,AI 都已經(jīng)可以幫你寫代碼了,程序員是不是要下崗了?
          但在我看來,這個插件目前還只是個高級的玩具而已。

          1. 只是幫你百度一下

          這個插件的本質(zhì)是利用人工智能,通過開源社區(qū)里的大量代碼進(jìn)行訓(xùn)練,從而實(shí)現(xiàn)自動寫代碼的效果。
          所以,對于通用性的代碼,它的生成準(zhǔn)確性還是比較高的。
          比如,我們在寫兩個日期之間的天數(shù),你寫來寫去,無非就是這樣寫(以 Python 為例):
          def?days(str1,str2):
          ????date1=datetime.datetime.strptime(str1[0:10],"%Y-%m-%d")
          ????date2=datetime.datetime.strptime(str2[0:10],"%Y-%m-%d")
          ????num=(date1-date2).days
          ????return?num
          這種代碼說白了其實(shí)沒有多少創(chuàng)造性,寫熟練了可能根本都不需要經(jīng)過大腦,都形成肌肉記憶了,無非就是函數(shù)名、變量不太一樣,其余的幾乎都一樣。
          類似的,我們還有一些算法(比如冒泡排序)、工具(比如哈希校驗),其實(shí)也都是重復(fù)性非常高的代碼,它也可以幫你完成得很好。
          重復(fù)性的工作,都有可能被替代的。
          在這種情況下,Copilot 的作用就相當(dāng)于幫你百度一下,然后再幫你 CV 一下。如果沒有這個插件,我們一樣也能做,只是花點(diǎn)時間而已。

          2. 業(yè)務(wù)代碼質(zhì)量不高

          Copilot 自己也承認(rèn),他們會嘗試了解程序員的意圖,并「盡可能」生成最好的代碼,但生成的代碼并不總是有效,有時甚至還沒有意義。
          畢竟訓(xùn)練集來自公共代碼,良莠不齊,甚至完全沒有意義。
          這點(diǎn)在 B 站大神的測試下也得到了印證,有時候確實(shí)也生成了一堆不知所云的代碼。
          畢竟,我們的業(yè)務(wù)需求一直都是復(fù)雜多變的,有時我們自己都不太能實(shí)現(xiàn)一些功能需求,還指望機(jī)器幫你寫?別太幻想了!
          而且,它自動補(bǔ)全業(yè)務(wù)代碼的前提是,你已經(jīng)需要有一定的代碼量供它參考,它才可以去猜測你接下來準(zhǔn)備寫什么。
          也就是說,你還是需要寫一些代碼,有這些代碼了它才會寫得更準(zhǔn)確一些。而且你提供的代碼量越少,它的推薦就越不準(zhǔn)確。
          也有人說了,它會根據(jù)注釋寫代碼啊。但是,實(shí)際上,注釋你都寫好了,你自己其實(shí)也已經(jīng)差不多把代碼都寫好了。
          再說了,程序員都知道,讀別人的代碼是一件很痛苦的事情,Copilot 幫你寫好了代碼,你敢直接就用嗎?你閱讀并理解它的代碼的時間,也許自己早就寫完了。
          所以,你說它會完全幫你寫代碼嗎?肯定不行,至少目前不會。就算能幫你寫部分業(yè)務(wù)代碼,也不一定寫得好。

          3. 有一定的安全問題

          Copilot 它的原理就是利用大量的代碼進(jìn)行訓(xùn)練,樣本越多自然就越準(zhǔn)確。
          那么問題來了,他們自己宣稱這些樣本是來自開源的社區(qū),但你使用了它們的插件,你敢保證你寫的代碼不會成為他們的樣本?
          而且,如果它們生成的代碼不合你的要求,你手動修改了,它更加理解了你的意圖,這對 Copilot 的訓(xùn)練簡直是神助啊,他們難道真的不會考慮利用一下使用者的免費(fèi)勞動力?
          凡是使用第三方插件,而且還是不開源的,誰都無法保證你的數(shù)據(jù)是否真的沒有被泄漏出去。
          自己練習(xí)的代碼肯定是無所謂了,但是如果涉及到公司的商業(yè)機(jī)密,那就可能會有法律問題了。
          而且,更可怕的是,Copilot 生成的代碼,有 0.1% 的概率會原封不動復(fù)制訓(xùn)練集的樣本。如果這些樣本沒版權(quán)也沒事,但要是有版權(quán),有可能也會吃官司。
          之前已有新聞報道過,Copilot 原樣復(fù)制了經(jīng)典射擊游戲《雷神之錘》里的代碼,而這些代碼是受法律保護(hù)的,使用者也因此受到了一些麻煩。
          所以,現(xiàn)在不少公司已經(jīng)明確規(guī)定,禁止使用 Copilot 插件!

          4. 照相機(jī)的出現(xiàn)不會讓畫家下崗

          照相機(jī)被發(fā)明出來的時候,曾經(jīng)一度也有人開始唱衰畫家這樣的崗位。但時過境遷,這么多年過去了,畫家的崗位消失了嗎?不僅沒消失,反而現(xiàn)在技術(shù)精湛的畫家身價一漲再漲。
          相機(jī),只是把畫家的一部分重復(fù)性工作取代了,比如畫肖像、風(fēng)景,等等。它只會機(jī)械地,一比一還原現(xiàn)實(shí)。而現(xiàn)在的畫家,更多是作為藝術(shù)創(chuàng)作,這部分相機(jī)短時間內(nèi)是無法取代的。
          (現(xiàn)在也有 AI 藝術(shù)創(chuàng)作,但還很難說取代)
          Copilot 何其不是這樣的存在呢?我大膽預(yù)測,Copilot 只會取代部分基礎(chǔ)的、重復(fù)性的編程工作,說它會讓程序員下崗,我覺得這肯定是天大的笑話。
          相機(jī)再智能,你也需要具備一定的美術(shù)、審美基礎(chǔ),才能拍出好看的照片。
          同樣的,Copilot 幫你寫了一堆代碼,你如果沒有一定的編程基礎(chǔ)的話,你連改都不會改。

          5. 展望

          我還是那句話,Copilot 的出現(xiàn)不會讓程序員下崗,只會取代部分工作而已。
          工具的出現(xiàn)只是會讓我們從重復(fù)性的勞動中解放出來,從而讓我們的大腦有更多時間思考。但思考和創(chuàng)作本身,很難被取代。
          我個人是非常歡迎 Copilot 這樣的工具出現(xiàn),可以讓我們減少很多不必要的工作。
          作為程序員都知道,我們每天都需要花費(fèi)很多時間在百度/谷歌上面,并且各種搬運(yùn)輪子。這種工作就是機(jī)械的重復(fù)性工作,如果能有工具讓我們從這樣的工作中解放出來,肯定會為我們節(jié)約很多時間。
          而且,Copilot 這個單詞本身也明確了自己的定位,那就是「副駕駛」,人家已經(jīng)很明確自己的位置,根本就沒想著成為主駕駛。
          所以,Copilot的出現(xiàn),大家不要如臨大敵,而是要合理利用工具,善于利用工具,讓工具真正為我們所服務(wù)。


          推薦閱讀:

          這博主,封的好!

          驚!初中生也來卷了……

          我期待被「畢業(yè)」

          瀏覽 79
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本三级在线 | 免费 国产 无码99久久久 | 人成视频在线观看 | 无码网站18 | www制一级黄色电影院 |