A szoftver fejlesztés során az implementáció tehát több lépésben, és sokszor párhuzamosan zajlik, szükséges, hogy az egyes programállapotok, jól követhetőek legyenek, ezt a feladatot a verziókövető rendszer ek ( revision control system ) látják el pl. CVS , Apache Subversion SVN ), Mercurial Git, GitHub
Fejlesztés folyamat fő jellemzői:
• egy közös tárolóban ( repository ) tartják kódokat
• ezt a fejlesztők lemásolják egy helyi munkakönyvtárba, és amelyben dolgoznak ( working copy
• a módosításokat visszatöltik a központi tárolóba ( commit
• a munkakönyvtárakat az első létrehozás ( checkout ) után folyamatosan frissíteni kell ( update
Az AI-alapú fejlesztői élmény elvárásai
• Használja az Ön által megadott kontextust, és szintetizálja a kódot
• Konvertálja a megjegyzéseket kóddá
• Automatikus kitöltés az ismétlődő kódokhoz
• Automatikus javaslat tesztek
• Alternatívák megjelenítése, választási lehetőség
GitHub Copilot
Az eszköz mély tanulási modelleket és természetes nyelvi feldolgozási technológiákat használ, hogy hatékony és pontos kódkiegészítési funkciókat biztosítson a fejlesztőknek, ezáltal javítva a fejlesztés hatékonyságát és a kód minőségét.
Javíthatja a fejlesztés hatékonyságát, csökkentheti a kódolási hibákat és javíthatja a kód minőségét. Fedezze fel a GitHubot egy valós programozási környezetben való alkalmazásával
A kód automatikus kiegészítése kulcsfontosságú segítséget nyújt a fejlesztőknek, lehetővé téve számukra a hatékonyabb kódírást, a gépelési hibák csökkentését, valamint a kódstruktúrával és a funkcióhasználattal kapcsolatos valós idejű javaslatok fogadását. A hagyományos automatikus kódkiegészítési eszközöknek azonban vannak korlátai, például statikus sablonokra és szabályalapú módszerekre korlátozódnak, így nem képesek alkalmazkodni a különböző kódolási gyakorlatokhoz és dinamikus fejlesztési környezetekhez.
A GitHub Copilot többféle fejlesztői környezetet és programozási nyelvet támogat, de én itt csak a Visual Studio Code (VS Code) környezet és Python programozási nyelv tapasztalataimmal foglalkozom.
A meglévő kódsegítő eszközök előnyei
1. A kódolás sebességének javítása: A kód automatikus kiegészítési technológiája és eszközei gyorsan generálhatnak kódrészleteket, minimalizálva a fejlesztők által igényelt billentyűzetbevitel mennyiségét, és ezáltal felgyorsítva a kódolási folyamatot.
2. A kódminőség javítása: Az automatikus kiegészítési eszközök nyelvtani szabályokon és ajánlott eljárásokon alapuló kódjavaslatokat nyújthatnak, segítve a fejlesztőket a specifikációk betartásában és a gyakori hibák csökkentésében.
3. Az ismétlődő munka csökkentése: A kódtöredékek és sablonok kihasználásával a fejlesztők megkerülhetik a hasonló kódszegmensek duplikálásának szükségességét, ezáltal növelve a munka hatékonyságát.
4. Tanulási és oktatási segédeszközök: Az automatikus kiegészítési eszközök kiegészítő forrásként szolgálhatnak a programozásoktatáshoz, kódpéldákat és útmutatást nyújtva a kezdőknek, elősegítve a programozási készségek elsajátítását és fejlesztését.
A meglévő kódsegítő eszközök korlátai főleg kontextuális korlátok: A jelenlegi automatikus kiegészítési technológiák túlnyomórészt statikus nyelvtani szabályokra és sablonokra támaszkodnak, és korlátozott megértéssel rendelkeznek a bonyolult kontextusokról és szemantikáról. Következésképpen küzdhetnek a fejlesztők szándékainak pontos előrejelzésével.
A GitHub Copilot háttere és implementációs elve
A GitHub Copilot egy forradalmi eszköz, amelyet a GitHub és az OpenAI közösen fejlesztett ki. A GitHub, a nyílt forráskódú és a privát szoftverprojektek híres tárhelyplatformja, több mint 100 millió fejlesztőből, több mint 4 millió szervezetből álló hatalmas felhasználói bázissal büszkélkedhet, és több mint 330 millió kódtárat üzemeltet.
2022 júniusában a GitHub kiadta a Copilotot az egyéni ügyfeleknek, és belefoglalta az ingyenes Student Packbe. A 2021 novembere óta nyilvánosan elérhető Codex fizetős szolgáltatás, amelyhez az OpenAI API-ját hívó program írásával lehet hozzáférni. Ez a hatalmas ökoszisztéma hozzáférést biztosít a GitHub Copilot számára a forráskódadatok kiterjedt és változatos gyűjteményéhez.
A mesterséges intelligencia terén elért úttörő fejlesztéseiről ismert OpenAI nagy sikert ért el a ChatGPT 4.0 kiadásával. A ChatGPT olyan erős közvetítő a nyelvi modellen, mint az LLAMA. Az LLAMA a statisztikai nyelvi modellek használatára támaszkodik . Az AI-technológia terén szerzett szakértelmüket kihasználva az OpenAI együttműködik a GitHubbal, és kihasználja a platformon elérhető rengeteg forráskód-adatot. A mély tanulási modellek, például az ismétlődő neurális hálózatok (RNN-ek) vagy transzformátorok a GitHub Copilot alapjául szolgálnak. Ezek a modellek képesek megtanulni a kód bonyolultságát, beleértve annak szintaktikai és szemantikai szerkezetét, valamint a fejlesztők által alkalmazott közös kódolási gyakorlatokat.
A kódfejlesztés kontextusában a kódolási követelmények kódmegjegyzésekkel fejezhetők ki és dokumentálhatók az integrált fejlesztési környezetben (IDE). Figyelemre méltó, hogy a GitHub Copilot képes elemezni ezeket a kódmegjegyzéseket, és kikövetkeztetni a mögöttes kódolási követelményeket, majd automatizálni a megfelelő kódrészletek generálását. Ez az intelligens képesség bemutatja a természetes nyelvi megértés és a gépi tanulási technikák kihasználásában rejlő lehetőségeket az emberi szándék és a kód megvalósítása közötti szakadék áthidalására. Ha a generált kód hibás, a felhasználónak tovább kell lépnie a hibakeresési módba
Fejlesztési folyamat copilottal:
1 Határozza meg a függvény kívánt viselkedését.
2 Írjon egy promptot, amely a lehető legpontosabban leírja a funkciót.
3 Engedélyezze a Copilot számára a kód generálását.
4 Olvassa el a kódot, hogy ésszerűnek tűnik-e.
5 Tesztelje a kódot, és ellenőrizze, hogy helyes-e:
a Ha a kód több teszt után helyes, lépjen tovább. b Ha a kód helytelen, folytassa a 2. lépéssel, és szerkessze a promptot.
A Copilot segíthet nekünk:
- A kód magyarázata :
Amikor a Copilot létrehozza nekünk a Python-kódot, meg kell határoznunk, hogy a kód azt teszi-e, amit szeretnénk. Ismét, ahogy korábban mondtuk, a Copilot hibákat fog elkövetni. Bár nem vagyunk érdekeltek abban, hogy megtanítsuk a Python működésének minden árnyalatát (ez a programozás régi modellje), megtanítjuk, hogyan kell olvasni a Python kódot, hogy átfogó megértést kapjunk arról, hogy mit csinál. A Copilot funkcióját is használni fogjuk, amely angolul magyarázza el a kódot. Amikor befejezed ezt a könyvet és a magyarázatainkat, még mindig rendelkezésre áll a Copilot, hogy segítsen megérteni a következő göcsörtös kódot, amit ad.
A fejlesztők annyi magyarázatot kérhetnek, amennyire szükségük van ahhoz, hogy teljes mértékben megértsék a kód működését.
Sajnos figyelmeztetnünk kell, hogy ezek a magyarázatok akár tévesek lehetnek, és hogy több magyarázatot kell kérnie a Copilottól, hogy korlátozza egyetlen hibás magyarázatra való támaszkodását.
Hibára utal, ha ilyen megjegyzést ad vissza copilot : "A kódod itt".
Ez a nyílt forráskódú ellenőrizetlen (félig befejezett, fejlesztés alatt álló) kódok/kódbázis tanítási folyamatban történő felhasználására vezethető részben vissza.
- A kód érthetőbbé tétele :
Ugyanazon feladat elvégzéséhez többféleképpen is írhat kódot. Egyesek könnyebben érthetők, mint mások. A Copilot rendelkezik egy eszközzel, amely átszervezheti a kódot, hogy megkönnyítse a munkát. Például a könnyebben olvasható kód gyakran könnyebben javítható vagy javítható, ha szükséges.
- Hibák kijavítása :
A hiba egy program írásakor elkövetett hiba, amely azt eredményezheti, hogy a program rossz dolgot csinál. Néha a Python-kód szinte működik, vagy szinte mindig működik, de nem egy adott körülmények között. Ha hallgattad a programozók beszélgetését, akkor talán hallottad azt a gyakori történetet, hogy egy programozó órákat töltött csak azért, hogy végül eltávolítson egy nem megfelelő szimbólumot, amely miatt a program meghibásodott.
A megjegyzéseket a programozók arra használják, hogy ember által olvasható összefoglalót adjanak arról, hogy mit tett a kód, hogy segítsen más szoftvermérnököknek a kód olvasásában. Mára a célja kibővült, hogy a Copilotot is ösztönözze.
A Ctrl–Enter billentyűkombinációval ellenőrizze, hogy a Copilot ad-e olyan javaslatokat, amelyek inkább kódok, mint megjegyzések
Ha nem elégedett a Copilot által kezdetben javasolt kóddal, több javaslatot is átválthat :
az Alt + [ és Alt + ] billentyűkombinációval // Windows és Linux rendszeren.
Egy nagy probléma megoldását és kisebb feladatokra osztását problémabontásnak nevezzük, amely a szoftvertervezés egyik legfontosabb készsége.
Copilot felé a fejlesztő kommunikáció szintjei:
# : megjegyzéseket írtunk, hogy megmondjuk a Copilotnak, mit tegyen
''' : docstringeket fogunk használni a függvények írásához hogy megmondjuk a Copilotnak, mit tegyen
Függvény definíció :
A docstringben el kell magyaráznunk, hogy az egyes paraméterek mire valók úgy, hogy a nevüket egy mondatban használjuk. Azt is bele kell foglalnunk, hogy mit kell tennie a funkciónak
Függvény törzs beszúrás:
Tab billentyűt (néha egyszer a behúzáshoz, majd ismét a Copilothoz), meg kell várnunk, amíg a kód megjelenik, majd meg kell nyomnunk az Enter billentyűt a kód elfogadásához, majd ismét meg kell nyomnunk a Tab billentyűt további kódért, és meg kell ismételnünk a folyamatot. (piros terület)
VS code felület/képernyő felosztása
VS code IntelliSense kódkiegészítés (alap működés)
Pozitív vélemények
A GitHub Copilot egyik előnye, hogy időt és energiát takarít meg a fejlesztőknek. A valós idejű kódjavaslatok biztosításával csökkenti a kód manuális írásának szükségességét, különösen az ismétlődő vagy sablonkódszegmensek esetében. Ez különösen hasznos azoknak a fejlesztőknek, akik még nem ismerik a programozási nyelvet vagy keretrendszert, hogy segítsenek nekik megtanulni és megérteni a kódmintákat.
Emellett a GitHub Copilot megkönnyíti a fejlesztők közötti együttműködést és tudásmegosztást. Kódrészletjavaslatokat nyújt a meglévő kódtárak és ajánlott eljárások alapján, lehetővé téve a fejlesztők számára, hogy kihasználják a kódolási közösség kollektív tudását és tapasztalatait. Ez segít növelni a kód újra felhasználhatóságát, minőségét és hatékonyságát a fejlesztési folyamatban.
A GitHub Copilot megkönnyíti a programozási oktatást azáltal, hogy segíti a kezdőket a gyorsabb és pontosabb kódírásban, felgyorsítva a tanulási folyamatot. Segít megérteni a közös kódolási mintákat és a legjobb gyakorlatokat, javítva a kódolási készségeket és stílust. Segíti a kezdőket a gyakori szintaktikai és logikai hibák elkerülésében, és a Github Copilottal való interakció révén különféle módszereket és algoritmusokat fedezhetnek fel problémamegoldó képességeik javítása érdekében
AI asszisztens által javasolt kód szinte mindig szintaktikailag helyes
AI asszisztensek valóban jók a kód magyarázatában
A GitHub Copilot fontos jellemzője, hogy képes tanulni a fejlesztő kódbázisából
Negatívumok
Mivel ez egy gépi tanuláson alapuló eszköz, minőségét és pontosságát a betanítási adatok befolyásolják. Bizonyos esetekben előfordulhat, hogy az általa nyújtott kódjavaslatok nem optimálisak, a fejlesztő kódszintjétől függően, ami manuális módosításokat igényel a fejlesztőktől.
Előfordulhat továbbá, hogy a GitHub Copilot nem alkalmas minden programozási feladatra vagy tartományra. Hatékonyabb az explicit mintákat és közös kódstruktúrákat tartalmazó feladatoknál. Összetett vagy területspecifikus forgatókönyvek esetén továbbra is szükség van az emberi szakértelem bevonására és a kézi kódolásra.
Bár GitHub Copilot kódjavaslatokat hozhat létre, elengedhetetlen a létrehozott kód minőségének és helyességének biztosítása. A kutatók dolgozhatnak azon, hogy javítsák a modell képességét a potenciális hibák, kódfelülvizsgálatok és biztonsági rések észlelésére, ezáltal megbízhatóbb és biztonságosabb kódajánlásokat nyújtva.
Alapvető használat
Copilot gyorsgombok (VS code):
Copilot megvalósítás elvei (elvárások)
VS code telepítése windows környezetben
Kiegészítők telepítése, VS Code Marketplace
Linkek:
https://marketplace.visualstudio.com/items?itemName=Oracle.sql-developer
https://docs.github.com/en/copilot/using-github-copilot/getting-started-with-github-copilot
https://learn.microsoft.com/hu-hu/training/modules/introduction-to-github/
https://learn.microsoft.com/hu-hu/training/modules/maintain-secure-repository-github/
Megjegyzések
Megjegyzés küldése