Meglehetősen későn kezdtem el használni a Github Copilotot, abból is az ingyenes verzióját. Nemrég tudtam meg ugyanis, hogy van ebből is nem fizetős verzió. Az én fejemben ugyanis még az élt, hogy csak havi 10$-ért lehet használni, olyan gyorsan zajlik most minden az AI terén, hogy egyszerűen, ha egy kicsit is hosszabban pislogsz máris elsuhannak melletted az ilyen hírek.
De szerencsére eljutott hozzám ez az infó, és már lassan egy hónapja használom aktívan a Github Copilotot a különböző side project-jeimen. Ebben az 1 hónapban nagyjából 20 órát töltöttem kódolással, ami nem sok, de már úgy érzem, hogy elég tapasztalat gyűlt össze, amit érdemes lehet megosztani veletek.
Az első reakcióm: mindblown
Feltelepítettem VSCode alá a Github Copilot bővítményt és bele is vetettem magamat a kódolásba, és teljes döbbenet lett rajtam úrrá. Olyanokat tudott, amiket a normál autocompleterek nem tudtak. Néhány egyszerű eset alapján szerintem érteni fogjátok a döbbenetem okát.
Írtam egy PHP metódust egy model osztályomban, majd a controllerben akartam használni azt. Átkattintottam a fájlra, leütöttem a $ jelet és egyből felkínálta a használatát. És ha ez nem lenne elég, akkor HELYESEN felparaméterezte. Tehát értelmezte a kontextust, a környezetet és anélkül, hogy bármit is kérnem kellett volna tőle, egyszerűen csak egy Tab lenyomásával ott volt a metódus meghívása előttem.
Második eset, be kellett vezetnem egy új checkboxot a felületen, a sablon fájlban elneveztem a checkboxot, kapott name, id, value property-ket. Majd átmentem a validációs részre és a korábbi validációk alapján tökéletesen megírta ugyanazokat a szabályokat. Sőt, még egy extra ellenőrzést is beletett, ami az értékre vonatkozott. Ezt nem tudom, hogy honnan szedte, de valóban annak a checkboxnak nem klasszikus 0 és 1 értéke lehetett, hanem 1 és 2. Hogy ezt mikor olvasta ki a kódomból, rejtély. De nagyon örültem neki, hogy ilyen okosan, csendben végezte a munkáját.
Szépen ki tudtam bővíttetni vele egy képfeldolgozó osztályom kódját, hogy új képtípusokat is fel tudjon dolgozni.
Gyakorlatilag alig haladtam valamivel gyorsabban a fejlesztésemmel, mint korábban, mert állandóan az államat kerestem a padlón, és ujjongva mutogattam a feleségemnek, hogy “Nézd ezt is tudja! Meg ezt is! Meg még ezt is!”. Nagyjából kisgyerek szintjére mentem vissza, de az a helyzet, hogy nagyon régen váltott már ki belőlem bármi is ilyen lelkesedést.
A kábulat elmúlása
Természetesen sejtettem én, hogy nem lehet minden szivárvány színű és unikornis puki illatú a Copilottal, hamar kijött, hogy bizony néhány esetben nincs igazán a helyzet magaslatán, sőt inkább hátráltat. Az egyik ilyen eset a tinyMCE szerkesztőbe integrált AJAX-os képfeltöltés megvalósítása volt. Se a chat, se az autocompleter része nem tudott segíteni, az mondjuk megint más kérdés, hogy 2025-ben egy képfeltöltéshez, miért kell 30+ sornyi kódot írni.
Ugyanis a php.ini-be nem látott bele, és nem tudta, hogy csak 2MB fájl méret korlát került beállításra localhoston. Így a sötétben tapogatózva próbált mindenféle megoldási javaslatokat ajánlani. Ezzel sajnos csak azt érte el, hogy elküldtem a fenébe (nem ilyen szépen). Mire durcásan bevágta, hogy nem hajlandó velem tovább együttműködni. Az összeveszésünk után békülendő hangnemet vettem fel, és megkértem, hogy nézzük át újra az egész folyamatot. Ekkor derült ki, hogy azért nem látom a PHP oldalon a fájlt, mert túl nagy a fájl mérete. Korábban olyanokat írt, hogy biztos elírtam a fájl input mező nevét, vagy nem megfelelően küldöm be. Furcsa volt, hogy a tinyMCE egyszerűen elnyelte ezt a hibát, nem jelzett róla semmit. Viszont onnantól kezdve, hogy megvolt a hiba oka, a hiba üzenetek lekezelése már megint gyerekjáték volt számunkra.
A másik kijózanító eset az volt, amikor tudtam nagyon jól, hogy mit szeretnék írni, de az autocompleter része folyton csak láb alatt volt. Mindig próbált valami okosat kiírni, de én kivételesen tudtam, hogy oda nem az kell, amit ő szeretne beszúrni, ezért csak írtam és írtam. Közben az autocompleter vadul dobálta fel a különböző javaslatokat. Emiatt pedig lassult a gépelés sebessége és még elütést is sikerült bevinnem.
Összegzés
Összességében nagyon hasznos toolnak gondolom a Copilotot, aminek természetesen megvannak a hátrányai. Jelenleg a kódbázisom kb 40%-át látja át, tehát még bőven van benne tartalék, hogy jobb legyen. Ha nincs időnyomás, és nem kell valamilyen hibát ASAP javítani, és nem vagy épp teljes idegállapotban, akkor nagyon kellemes “vibe coding-ot” lehet megvalósítani vele, és ehhez nem kell más AI agentet használni. A legjobb benne, hogy ha viszonylag clean code-t írsz, akkor nagyon jó ajánlásokat tud adni mivel átlátja a mintázatot. Hátrányként sokan egyébként ezt is említik: nagyon könnyen rögzítheti a jelenlegi állapotokat és csak hátráltathatja a refaktorálási folyamatokat. Ésszel használva, szerintem nagyon jól dolgozik alánk.