Az AI-termékek forradalmasították a szoftverfejlesztést vagy a kódolást a modern időkben. A mesterséges intelligencia segítségével automatikusan generálhatunk programozási kódokat, valamint javíthatjuk és optimalizálhatjuk azokat Kód refaktorálás . Ebben a cikkben megvizsgáljuk a refaktorálási folyamatot, és megnézzük, hogyan teheti ezt meg használja a Copilot to Refractor Code-ot .
Mi az a kódrefaktorálás?
Szoftver- vagy alkalmazásfejlesztésben a Code Refaktoring a program forráskódjának rekonstrukcióját vagy átrendezését jelenti az eredeti funkcionalitás megőrzése mellett. A folyamat célja a szoftver szerkezetének és kialakításának javítása, valamint a bonyolultság csökkentése. A mesterséges intelligencia kódrefaktorálásba való integrálása segített a szoftverteljesítmény-problémák gyors azonosításában, és az összetett algoritmusok egyszerűsítésében az általános hatékonyság javítása érdekében.
biztonsági központ ablakai 10
Hogyan segíthet a Copilot a kódok újrafeldolgozásában?
Elemezheti a kód egy adott szakaszát, és javaslatokat tehet annak szerkezetének tisztább és felhasználóbarát formátumra való javítására, hogy csökkentse a bonyolultságot. A megadott ajánlások a következőkön alapulnak:
- A meglévő kóddal kapcsolatos problémák azonosítása: A másodpilóta átvizsgálja a teljes kódfájlt, hogy kiemelje az újrafaktorálandó szakaszokat vagy területeket, rámutatva a duplikált kódokra, a nem használt vagy nem világos változókra stb.
- Javasoljon hatékony lehetőségeket: A kód átalakítása során a Copilot elemzi a meglévő kódot, és olyan hatékony alternatívákat javasol, amelyek ugyanazokat az eredményeket tudják elérni, de a kód tisztább megjelenést kölcsönöz. Ezek az ajánlások közé tartozik a hatékony nyelvhasználat a változók, módszerek és adatstruktúrák elnevezéséhez.
- Karbantartható kód biztosítása: A valós idejű visszajelzés segít elkerülni a hibákat. A javaslatok általában a programozási elvek bevált gyakorlatain alapulnak, amelyek segíthetnek fenntartani a megfelelő kódszerkezetet, megkönnyítve mások számára, hogy megértsék és szükség esetén módosítsák ugyanazt.
A Copilot to Refractor Code használata
Ahhoz, hogy a Copilotot használjuk a refaktoráláshoz, kezdhetjük azzal a GitHub Copilot telepítése kiterjesztése az érintett nyelvhez (VS Code, Python stb.). Például, ha egy Pythonban írt forráskódot szeretnénk rekonstruálni, telepíthetjük a Copilot bővítményt a következőképpen:
- Kattintson a Beállítások lehetőség megnyitásához az Integrált fejlesztői környezetben vagy IDE-ben (JavaScript vagy Python).
- Kattintson a bal oldalon a plugin opcióra.
- Kattintson a Piactér opciót, és keresse meg a GitHub másodpilóta csatlakoztat.
- Miután megtalálta, kattintson a gombra Telepítés a bővítmény telepítéséhez.
- Az IDE újraindítást kér a telepítés befejezése után. Az újraindítás után nyissa meg az IDE-t, és kattintson a gombra Eszközök -> GitHub másodpilóta -> Bejelentkezés a GitHubba.
- Sikeres bejelentkezés után a Copilot használatra kész.
- A Copilot használatához az alábbi parancsikonokat használhatja a kód írása közben
Akció | Windows/Linux | Mac operációs rendszer |
Inline javaslatok aktiválása | Alt+\ | Option+\ |
Lásd a következő javaslatot | Alt+] | Option+] |
Lásd az előző javaslatot | Alt+[ | Option+[ |
Fogadjon el egy javaslatot | Tab | Tab |
Soron belüli javaslat elvetése | Kilépés | Kilépés |
Az összes javaslat megjelenítése új lapon | Alt+Enter | Alt+Enter |
Összefüggő: A GitHubról letöltött kód megtekintése
1. példa: Egy összetett kód egyszerűsítése
Tekintsük az alábbi kódrészletet annak bemutatására, hogyan lehet egy összetett kódot leegyszerűsíteni a Copilot Refaktoring funkciójával. Itt a könnyebb érthetőség kedvéért egy nagyobb programnak csak egy részét vesszük figyelembe:
Refaktorálás előtt
google meghajtó duplikált fájlokat
public void processOrder(Order order) { // ... further codes if (order.isReadyForProcessing()) { // process the order } //... further codes }
A Copilot-tal végzett refaktorálás után
public void processOrder(Order order) { // ...further codes processReadyOrder(order); // ...further codes }
private void processReadyOrder(Order order) { if (order.isReadyForProcessing()) { // process the order } }
A fenti példában az első kódkészlet (Az újrafaktorálás előtt) egy elnevezett függvényből vagy metódusból áll feldolgoz Rendelés, amely egy adott megrendelés feldolgozásának lépéseit végzi el. A rendelés feldolgozása előtt a feltételes IF utasítás ellenőrzi, hogy a rendelés készen áll-e a feldolgozásra, vagy nem használja a if (order.isReadyForProcessing()) funkció. Ebben a kódkészletben a feldolgozási logika az elsődleges funkción belül van, így kevésbé moduláris.
A következő kódrészletben a processOrder funkció a megrendelés feldolgozásához. Azonban a rendelés feldolgozásra kész állapotának ellenőrzésének logikája és a kész rendelés feldolgozása átkerült egy külön elnevezésű függvénybe. processReadyOrder. Ez segít az egyes módszerek elkülönítésében, hogy a kód egyértelműségét és modularitását biztosítsa.
Hiányzik az nvidia központja
2. példa: Változó átnevezése
Refaktorálás előtt
def calculate_area(l, w): return l * w
A Copilot-tal végzett refaktorálás után
def calculate_area(length, width): return length * width
Az átalakítás után azonban az „l” és „w” változók helyére hosszra és szélességre került, ami a kód átnevezésével, mint az újrafaktorálás lényeges jellemzőjével, a kód egyértelműségét növelte.
Annak ellenére, hogy a Copilot segíthet nekünk rekonstruálni a kódot, számos korlátja van, például helytelen javaslatok, túlzott támaszkodás és az elavult kódok törése. Miután megkapta a javaslatait, győződjön meg róla, hogy minden kézi ellenőrzésen és használja a megfelelő utasításokat.
Milyen adatokra képezték ki a GitHub Copilotot?
A GitHub másodpilótát a természetes nyelvű szövegekre és a nyilvánosan elérhető forrásokból származó forráskódokra képezték ki, beleértve a GitHub nyilvános adattáraiban található kódokat is. A GitHub, az OpenAI és a Microsoft által kifejlesztett generatív mesterséges intelligencia modellek hajtják.
Melyek a Copilot kompatibilis programozási nyelvei?
A Github Copilot számos nyelvet támogat, de különösen jól működik JavaScript, TypeScript, Ruby, Python, Go, C++ és C# esetén.