GitHub Copilot: AI asistentas VS code

Kas iš tiesų yra GitHub Copilot ir kodėl visi apie jį kalba

Programuotojai visada ieškojo būdų, kaip greičiau rašyti kodą ir išvengti nuobodžių, pasikartojančių užduočių. Ir štai 2021 metais GitHub kartu su OpenAI pristatė įrankį, kuris sukėlė tikrą sensaciją – GitHub Copilot. Tai dirbtinio intelekto asistentas, integruojamas tiesiai į jūsų kodo redaktorių, dažniausiai Visual Studio Code.

Skirtingai nei įprasti kodo užbaigimo įrankiai, kurie tiesiog siūlo funkcijų pavadinimus ar kintamuosius, Copilot gali sugeneruoti ištisas kodo eilutes, funkcijas ir net algoritmus. Jis mokosi iš milijardų viešai prieinamų kodo eilučių GitHub platformoje ir bando suprasti, ką bandote padaryti, remdamasis kontekstu.

Pirmąkart išbandžius šį įrankį, jausmas būna keistas – tarsi kažkas skaito jūsų mintis. Pradedi rašyti funkciją, ir Copilot jau siūlo pilną implementaciją. Kartais ji būna stebėtinai tiksli, kartais – visiškai ne į temą. Bet būtent tai ir daro jį tokį intriguojantį.

Kaip įdiegti ir pradėti naudoti VS Code

Pradėti naudoti GitHub Copilot yra gana paprasta, nors reikia žinoti keletą niuansų. Pirma, jums reikės GitHub paskyros ir Copilot prenumeratos. Studentams ir populiarių open source projektų prižiūrėtojams jis siūlomas nemokamai, o visiems kitiems – už mėnesinį mokestį.

Kai turite prenumeratą, eikite į VS Code ir atidarykite Extensions skiltį (Ctrl+Shift+X arba Cmd+Shift+X Mac’e). Ieškokite „GitHub Copilot” ir paspauskite Install. Po įdiegimo jums reikės autorizuotis su savo GitHub paskyra – paprasčiausiai sekite nuorodomis, kurias VS Code jums parodys.

Įdomu tai, kad Copilot turi ir papildomą plėtinį – GitHub Copilot Chat. Šis įrankis leidžia bendrauti su AI tiesiogiai pokalbių lange, užduoti klausimus apie kodą ar prašyti paaiškinimų. Labai rekomenduoju įdiegti abu plėtinius – jie puikiai papildo vienas kitą.

Po sėkmingo įdiegimo apatiniame dešiniajame VS Code kampe pamatysite Copilot ikoną. Jei ji žalia – viskas veikia. Jei raudona – kažkas negerai su autorizacija ar prenumerata. Kartais tiesiog reikia perkrauti VS Code langą.

Praktinis darbas su Copilot: kas veikia, o kas ne

Dabar prie įdomiausios dalies – kaip iš tikrųjų atrodo darbas su šiuo AI asistentu. Copilot pasiūlymai atsiranda pilku tekstu, kai tik pradedi rašyti kodą. Norėdami priimti pasiūlymą, tiesiog paspauskite Tab klavišą. Jei pasiūlymas netinka, ignoruokite jį ir tęskite rašymą.

Vienas geriausių Copilot panaudojimo būdų – rašyti aiškius komentarus apie tai, ką norite padaryti. Pavyzdžiui, parašius // funkcija, kuri patikrina ar el. pašto adresas validus, Copilot dažniausiai pasiūlys visą funkcijos implementaciją. Kartais ji bus puiki, kartais turėsite ją pataisyti.

Copilot ypač gerai sekasi su standartinėmis užduotimis: API užklausų rašymu, duomenų validacija, testų kūrimu, reguliariųjų išraiškų generavimu. Jis taip pat neblogai susidoroja su populiariomis bibliotekomis ir frameworkais – React, Express, Django ir panašiai.

Tačiau yra ir silpnų pusių. Copilot gali siūlyti pasenusį kodą, nes jo mokymo duomenys nėra nuolat atnaujinami. Jis kartais sugeneruoja kodą, kuris atrodo gerai, bet turi subtilių klaidų ar saugumo spragų. Ir jis tikrai nesupras jūsų projekto specifinės logikos ar verslo taisyklių – čia reikia jūsų proto.

Copilot Chat: pokalbiai su AI apie kodą

GitHub Copilot Chat – tai lyg ChatGPT, bet specialiai pritaikytas programavimui ir integruotas į VS Code. Galite jį atidaryti paspaudę ikoną šoniniame meniu arba naudodami komandą Ctrl+Shift+I.

Ką galite daryti su Chat? Daug ko. Pažymėkite kodo bloką ir paklauskit „Paaiškink, ką daro šis kodas” – gausite išsamų paaiškinimą. Arba „Rask klaidas šiame kode” – Copilot pamėgins identifikuoti problemas. Galite net paprašyti „Parašyk unit testus šiai funkcijai” ir gauti paruoštus testus.

Viena įdomiausių funkcijų – /fix komanda. Kai matote klaidą savo kode, galite tiesiog parašyti /fix ir Copilot pamėgins ją ištaisyti. Nevisada pavyksta, bet kai pavyksta – sutaupoma daug laiko.

Yra ir kitos naudingos komandos: /explain kodo paaiškinimui, /tests testų generavimui, /doc dokumentacijos sukūrimui. Eksperimentuokite su jomis – kai kurios gali tapti jūsų kasdienio darbo dalimi.

Ar Copilot padaro mus geresniais programuotojais?

Čia prasideda filosofinės diskusijos. Vieni sako, kad Copilot – tai revoliucija, kuri leidžia programuotojams sutelkti dėmesį į sudėtingesnes problemas, o ne į sintaksę. Kiti baiminasi, kad jaunesnės kartos programuotojai niekada iš tikrųjų neišmoks programuoti, jei visada pasikliauja AI.

Iš asmeninės patirties galiu pasakyti, kad Copilot yra įrankis – nei geresnis, nei blogesnis už kitus. Jis gali pagreitinti darbą, bet tik jei jau žinote, ką darote. Jei nesuprantate sugeneruoto kodo, jūs tiesiog kopijuojate ir įklijuojate nesuprasdami – o tai yra pavojinga.

Pradedantiesiems programuotojams rekomenduočiau būti atsargiems su Copilot. Pirmiausia išmokite pagrindus be jokios pagalbos. Kai jau suprasite, kaip veikia ciklai, sąlygos, funkcijos – tada Copilot gali tapti naudingu asistentu, o ne ramentais.

Patyrusiems programuotojams Copilot gali būti tikras produktyvumo stiprintuvas. Jis puikiai tinka boilerplate kodo generavimui, testų rašymui, dokumentacijos kūrimui – visoms toms užduotims, kurios yra būtinos, bet ne ypač kūrybiškos.

Privatumas, saugumas ir etiniai klausimai

Negalime nepaminėti kelių svarbių dalykų, susijusių su Copilot naudojimu. Pirma, jūsų kodas yra siunčiamas į GitHub serverius, kad AI galėtų generuoti pasiūlymus. Jei dirbate su konfidencialiu kodu, turėtumėte apsvarstyti, ar tai priimtina.

GitHub teigia, kad jūsų kodas nėra naudojamas Copilot mokymui (bent jau su mokama versija), bet duomenys vis tiek keliauja per jų serverius. Kai kurios įmonės dėl šios priežasties draudžia naudoti Copilot. Visada pasitikrinkite su savo darbdaviu ar klientu.

Kitas klausimas – autorių teisės. Copilot buvo mokomas iš viešų GitHub repozitorijų, įskaitant tuos, kurie turi įvairias licencijas. Ar sugeneruotas kodas gali pažeisti kieno nors autorių teises? Tai vis dar pilka zona teisiškai. GitHub siūlo tam tikrą apsaugą, bet situacija nėra visiškai aiški.

Yra ir techninių saugumo aspektų. Copilot kartais gali sugeneruoti nesaugų kodą – pavyzdžiui, su SQL injection spragomis ar nepatikrintais vartotojo įvesties duomenimis. Visada peržiūrėkite sugeneruotą kodą, ypač jei jis susijęs su saugumu ar duomenų apdorojimu.

Alternatyvos ir konkurentai

GitHub Copilot nėra vienintelis AI asistentas programuotojams. Amazon turi CodeWhisperer, kuris veikia panašiai ir turi nemokamą versiją su tam tikrais apribojimais. Tabnine – dar viena populiari alternatyva, kuri daugiau dėmesio skiria privatumui ir gali būti paleista lokaliuose serveriuose.

Replit Ghostwriter, Codeium, Sourcegraph Cody – sąrašas auga kiekvieną mėnesį. Kiekvienas turi savo privalumų ir trūkumų. Kai kurie geriau veikia su tam tikromis programavimo kalbomis, kiti siūlo geresnes kainas ar privatumo garantijas.

Įdomu tai, kad didžiosios technologijų kompanijos integruoja AI asisentus tiesiai į savo IDE. JetBrains turi AI Assistant, Microsoft – IntelliCode. Šie įrankiai gali būti labiau integruoti su konkrečia aplinka, bet dažnai yra mažiau galingi nei specializuoti sprendimai.

Jei dar neesate tikri dėl Copilot, verta išbandyti kelias alternatyvas. Daugelis jų siūlo nemokamus bandomuosius laikotarpius. Kas vienam veikia puikiai, kitam gali būti visiškai netinkama – tai priklauso nuo jūsų darbo stiliaus ir poreikių.

Kaip išspausti maksimumą iš AI asistento

Jei nusprendėte naudoti Copilot, štai keletas patarimų, kaip tai daryti efektyviai. Pirma, rašykite aiškius komentarus. Kuo geriau paaiškinate, ko norite, tuo tikėtina, kad gausite naudingą pasiūlymą. Vietoj // sortavimas geriau parašyti // surūšiuoti vartotojus pagal registracijos datą mažėjimo tvarka.

Antra, naudokite aprašomus kintamųjų ir funkcijų pavadinimus. Copilot daug ko išmoksta iš konteksto, ir jei jūsų kodas yra aiškus, pasiūlymai bus geresni. Funkcija pavadinta processData duos prastesnius rezultatus nei validateUserEmailAndSendConfirmation.

Trečia, nepriiminėkite pirmojo pasiūlymo aklai. Copilot gali pasiūlyti kelis variantus – spauskite Alt+] arba Alt+[ (Option+] ar Option+[ Mac’e), kad matytumėte kitus pasiūlymus. Kartais trečias ar ketvirtas variantas būna gerokai geresnis už pirmąjį.

Ketvirta, naudokite Copilot kaip mokymosi įrankį. Kai jis pasiūlo kodą, kurį nesuprantate, paprašykite Copilot Chat jį paaiškinti. Tai puikus būdas mokytis naujų techniką ar bibliotekų. Tik nepamirškite patys išbandyti ir suprasti, kaip viskas veikia.

Penkta, reguliariai peržiūrėkite ir testuokite sugeneruotą kodą. Copilot daro klaidas – tai faktas. Jūsų darbas yra jas pastebėti ir ištaisyti. Niekada nedeployinkite kodo, kurio nesupranta ar neišbandėte.

Ateitis jau čia, bet ji dar nebaigta

GitHub Copilot ir panašūs įrankiai tikrai keičia tai, kaip rašome kodą. Tai nebe mokslinė fantastika – tai realybė, su kuria dirbame kasdien. Bet ar tai reiškia, kad programuotojai netrukus taps nereikalingi? Tikrai ne.

AI asisentai yra puikūs tam, kam jie sukurti – padėti su rutininėmis užduotimis, pagreitinti kodo rašymą, pasiūlyti sprendimus. Bet jie nesupras jūsų verslo logikos, neišspręs sudėtingų architektūrinių problemų ir tikrai nepasakys, ar kuriate teisingą produktą. Tai vis dar reikalauja žmogaus proto, patirties ir intuicijos.

Copilot geriausia naudoti kaip partnerį, ne kaip vadovą. Jis gali pasiūlyti idėjų, sutaupyti laiko, padėti išvengti kvailų klaidų. Bet galutinės sprendimas visada turėtų likti jums. Jūs esate tas, kuris supranta kontekstą, žino projekto tikslus ir atsako už rezultatą.

Ar verta mokėti už Copilot? Jei programuojate profesionaliai ir vertinate savo laiką, greičiausiai taip. Jei esate hobistas ar studentas, pabandykite nemokamą versiją ar alternatyvas. Bet nesvarbu, ką pasirinksite, svarbu suprasti, kad AI asistentas – tai įrankis, kuris gali padaryti jus produktyvesnį, bet tik jei mokate jį naudoti protingai.

Daugiau

Oxc: Rust JavaScript toolchain

MySQL 8.0 window funkcijų praktiniai pavyzdžiai