Github Copilot on tie koodarin sydämeen 

Julkaistu 15.2.2024
Lukuaika noin 5 min
Blogipostauksen headerkuva, missä mies istuu tietokoneella

GitHub Copilot voi auttaa sinua koodaamaan näyttämällä ja käyttämällä automaattisesti ehdotettuja täydennyksiä koodauksen aikana. Opi, miten GitHub Copilot toimii ja mitä on otettava huomioon GitHub Copilotin käytössä. 

Mikä on GitHub Copilot? 

GitHub Copilot on tekoälyä käyttävä pariohjelmoija, joka tarjoaa automaattisen täydennyksen kaltaisia ehdotuksia koodauksen aikana. Voit saada ehdotuksia GitHub Copilotilta joko aloittamalla haluamasi koodin kirjoittamisen tai kirjoittamalla luonnollisella kielellä kommentin, jossa kuvataan, mitä haluat koodin tekevän. GitHub Copilot analysoi muokkaamasi tiedoston kontekstin sekä siihen liittyvät tiedostot ja tarjoaa ehdotuksia tekstieditorissa. GitHub Copilot perustuu GitHubin, OpenAI:n ja Microsoftin kehittämään generatiiviseen tekoälymalliin. 

GitHub Copilot on koulutettu kaikille kielille, jotka esiintyvät julkisissa repositorioissa. Kunkin kielen osalta saamiesi ehdotusten laatu voi riippua kyseisen kielen koulutusdatan määrästä ja monimuotoisuudesta. Esimerkiksi JavaScript on hyvin edustettuna julkisissa repositorioissa, ja se on yksi GitHub Copilotin parhaiten tuetuista kielistä. Kielet, jotka ovat vähemmän edustettuina repositorioissa, voivat tuottaa vähemmän luotettavia ehdotuksia. 

GitHub Copilot on saatavilla laajennuksena 

  • Visual Studio Codeen, 
  • Visual Studioon, 
  • Vimiin, 
  • Neovimiin, 
  • JetBrainsin IDE-pakettiin ja 
  • Azure Data Studioon. 

Kuinka GitHub Copilotia käytetään?

Jos haluat varaslähdön GitHub Copilotin opiskeluun, niin suosittelemme Tieturin omaa kurssia Tekoälytyökalut IT-projektissa apuna, jossa opit kolmessa tunnissa sovelluskehityksen parhaat tekoälytyökalut. 

Kun aloitat ”promptin” käytön, on tärkeää muistaa muutama keskeinen seikka, jotta saat siitä mahdollisimman hyödyllisiä ehdotuksia. Copilotin tehokkuus perustuu siihen, että se saa käyttöönsä kattavan kontekstin siitä, mitä olet tekemässä ja millaista apua tarvitset. Samalla tavoin kuin selittäisit koodiasi työkaverillesi, Copilot tarvitsee riittävästi kontekstia ongelman ympäriltä toimiakseen optimaalisesti. 

Miten annan kontekstia Copilotille? 

Avatut tiedostot 

Copilot katsoo nykyistä avattua tiedostoasi ja kaikkia avattuja tiedostojasi ja analysoi niiden pohjalta paremmin kontekstia siitä, mitä olet tekemässä ja sen perusteella yrittää luoda parempia ehdotuksia koodiisi. Eli kun pidät muita projektiin liittyviä tiedostoja auki VS Codessa käyttäessäsi Copilotia, autat sitä ymmärtämään enemmän. 

Ylimmän tason kommentti 

Tässä toimii aivan sama toimintaperiaate: kun kirjoitat koodiisi ylätason kommentin siitä, mitä koodisi tekee, helpotat työkaverisi työtä, kun hän tarkastaa koodiasi. Samalla tavalla myös Copilot lukee tämän kommentin ja saa siitä enemmän kontekstia siitä, mitä ollaan tekemässä. 

Oikeanlaiset sisällytykset ja referenssit 

On parasta, että sisällytät itse vaadittavat kirjastot ja moduulit projektiisi mukaan. Copilot voi tehdä ehdotuksia tässä asiassa, mutta todennäköisesti tiedät itse parhaiten, mitä kirjastoja projektissa kannattaa käyttää. Tällä tavalla Copilot myös ymmärtää helpommin sitä, mitä olet tekemässä. 

Merkitykselliset funktioiden nimet 

Jos mietit, kuinka huonosti kollegasi ymmärtäisi pelkän funktion nimen ”haeTiedot()”, niin ymmärrät varmasti, että myös Copilotin on silloin hankalampi ymmärtää, mitä se tarkoittaa. On selvää, että jotain tietoja haetaan, mutta mitä tietoja? On siis hyvä tarkentaa funktioiden nimiä, jotta Copilot pystyy paremmin ymmärtämään sinua. 

Spesifit ja laajuudeltaan tarkat funktion kommentit 

Edellisessä kappaleessa puhuttiin, kuinka on tärkeää nimetä funktiot merkityksellisesti, että Copilot saa tarpeeksi kontekstia niiden käyttöön. Todellisuudessa tämä voi tarkoittaa sitä, että funktioiden nimet kasvavat ihan liian pitkiksi, joten kontekstia helpottamaan on järkevää käyttää funktiokohtaisia kommentteja. 

Copilotin auttaminen esimerkkikoodilla 

Yksi tapa helpottaa Copilotin ehdotuksia on kopioida jokin valmis koodinpätkä, joka muistuttaa siitä, mitä myös itse haluat tehdä. Antamalla pienen koodipätkän esimerkkinä Copilotille, voit helpottaa Copilotia ymmärtämään sen, mitä haet takaa. Kun olet saanut haluamasi koodin Copilotilta, voit poistaa tämän esimerkkikoodin pois. 

Chatin toiminnallisuudet 

Riviehdotusten lisäksi pystyt saamaan apua Copilotilta chat-käyttöliittymän kautta. Tämä toiminnallisuus on tuettu monella tavalla: 

  • Chat-näkymä: Chat-näkymässä voit kysyä Copilotilta apua minkä tehtävän tai kysymyksen parissa vain. 
  • Rivichat: Voit keskustella Copilotin kanssa samalla kun kirjoitat koodia, suoraan koodiriville. 
  • Pikachat: Voit napata pudotusvalikosta chatin, missä keskustella Copilotille. 

Chattinäkymä 

Kun olet kehittämässä projektia tai oppimassa jotain uutta, niin tekoälyltä saamasi apu voi olla todella suuri apu. Copilotilta voit kysyä chattinäkymässä ihan mitä haluat ja se osaa ottaa myös kontekstia sinun koodistasi, tiedostoistasi ja muista aiemmin mainituista asioista. 

Pääset käsiksi chattinäkymään ”Activity Bar:ista”: 

Github copilot chattinäkymä esimerkki

Voit myös siirtää chattinäkymän ihan mihin tahansa aivan kuten muitakin näkymiä VS Codessa. Voit esimerkiksi siirtää sen sivupalkkiin, jolloin voit käyttää sitä samaan aikaan muiden näkymien kanssa: 

Github copilot chattinäkymä oikeassa palkissa

Copilot myös ehdottaa hyviä kysymyksiä, joilla pääset alkuun. Voit käyttää näitä valmiita kysymyksiä alkuun pääsemiseen tai kirjoittaa ihan oman kysymyksen. 

Esimerkki siitä, miten Github Copilot auttaa koodin tuottamisessa

Copilot säilyttää historiatiedot kaikista kysymyksistäsi ja vastauksista ja se antaa osuvia jatkokysymyksiä tai komentoja vastauksissaan myös. 

Copilotin näppäinkomentoja 

Jotta työskentely chattinäkymässä olisi mahdollisimman helppoa, on tässä muutamia näppäinkomentoja: 

  • Ctrl+Alt+I: Avaa chattinäkymän 
  • Ctrl+L: Tyhjentää chattinäkymän 
  • Ctrl+ALASNÄPPÄIN: Siirtää näppäimistön fokuksen chattinäkymän syötekenttään 

”@”- ja ”/”-kontekstit 

Pystyt helpottamaan lisää Copilotin ymmärrystä antamalla kysymyksellesi laajuuden ja tarkoituksen käyttämällä ”@”- ja ”/”-komentoja: 

  • @workspace konteksti antaa tietoa projektisi tiedostoista ja luokista. 
  • @vscode kontekstilla voit kertoa, että haluat juuri VS Codeen liittyvää tietoa ja apua. 
  • @terminal kontekstilla voit saada tietoa koodieditorin integroidusta komentoikkunasta ja sen sisällöistä. 

Voit myös halutessasi lisätä @-konteksteihin /-komentoja niiden perään. Esimerkiksi ”@workspace /explain” yhdistelmällä voit kysyä Github Copilotilta, miten joku tiedosto tai koodinpätkä toimii työtilassasi. Näet kaikki eri /-komennot syöttämällä / komentoikkunaan. 

Github copilot esimerkki siitä, mitä eri /-vaihtoehtoja on olemassa

  • @workspace /explain: Selittää askel askeleelta, kuinka koodisi toimii. 
  • @workspace /fix: Ehdottaa korjauksia koodiisi, jos siinä on bugeja. 
  • @workspace /new: Luo uuden projektin luonnolliseen kieleen perustuen. 
  • @workspace /newNotebook: Luo uusi Jupyter Notebook kuvaukseesi perustuen. 
  • @workspace /tests: Luo yksikkötestit valitulle koodille. 
  • @vscode /api: Voit kysyä VS Coden lisäosien kehityksestä. 
  • @terminal: Selittää kuinka tehdä asioita integroidussa komentoikkunassa. 

Agentti- ja vinoviivakomentoyhdistelmien lisäksi on olemassa yleiskäyttöisiä vinoviivakomentoja sellaisia toimintoja varten kuin chat-istunnon tyhjentäminen tai avun pyytäminen. 

  • /help: Antaa yleistä apua GitHub Copilotista. 
  • /clear: Tyhjentää istunnon. 

Kehitä tekoälyosaamistasi

Oppimisen tärkeys korostuu erityisesti tekoälyn kaltaisella nopeasti kehittyvällä alueella. Tieturin tekoälykoulutukset tarjoavat syvällistä ymmärrystä ja käytännön taitoja tekoälyn monipuolisessa hyödyntämisessä työelämässä. 

Jos haluat syventyä tekoälyn hyödyntämiseen sovelluskehityksessä, kolmen tunnin intensiivikurssilla Tekoälytyökalut IT-projektissa apuna opit sovelluskehityksen parhaat tekoälytyökalut, mukaan lukien Github Copilot, sekä syvennyt, miten näitä työkaluja voidaan hyödyntää maksimaalisesti IT-projekteissa.  

Tutustu myös muihin tuleviin kursseihimme tekoälystä: 

Asiasanat:

Ohjelmistokehitys Copilot Github Github copilot Visual studio code