Hogyan tudja a ChatGPT átírni és javítani a meglévő kódot
Tudtuk, hogy ez a generatív AI-eszköz kódot tud létrehozni, de tudta, hogy a ChatGPT is képes megmagyarázni és átírni a kódot? Talán Kódsúgónak kellene neveznünk.
Az elmúlt néhány hónapban feltártuk a ChatGPT kódalkotási képességét. A ChatGPT-t "generatív mesterséges intelligencia"-nak tekintik, és a kód létrehozása promptból biztosan megfelel a generatív kifejezésnek. Megmutattuk, hogyan tud teljes, működő WordPress-bővítményt létrehozni, valamint kódot írni több tucat nyelven, mind a mainstream, mind a homályos nyelveken.
Néhány közelmúltbeli kísérlet során azonban egy másik képességre lettem figyelmes: a ChatGPT képes kódot olvasni és dekonstruálni. Erre a képességre akkor kaptunk utalást, amikor felfedeztem a ChatGPT-t a hibakeresést segítő eszközként. Beadtam neki egy kis kódblokkot és egy hibaüzenetet, és képes volt megmutatni, hol hibáztam.
De amit ma megmutatok, az az, hogy a ChatGPT hogyan segíthet megérteni és esetlegesen átírni a kódot. Ez elég nagy ügy.
A JavaScript magyarázata
Ennek szemléltetésére egy kis JavaScript-kóddal kezdem, amely ellenőrzi, hogy a bemeneti érték pénznem-e. Az első és a harmadik sorban néhány viszonylag arkán reguláris kifejezést használ, amiben megkérjük, hogy segítsen nekünk.
Kezdjük azzal, hogy a ChatGPT elmagyarázza, mit csinál a kód. Ez egy nagyon hatékony képesség, különösen, ha egy másik programozótól örököl kódot. Bár nincs garancia arra, hogy a ChatGPT igaza lesz, ezzel órákat takaríthat meg, mivel áttekintheti a kód működését. A promptot használtam:
Magyarázza el a következő kódot
és beillesztem a kódblokkot. A ChatGPT mondanivalója a következő:
Ezzel a képességgel érdekes dolgokat tehetünk. Például a ChatGPT kódot átírhatjuk. Példaként megkérdeztem a ChatGPT-t:
Írja át a következő sort úgy, hogy ne használjon reguláris kifejezéseket:
return !isNaN(n) && n >= 0 && /^\d+(\.\d{1,2})?$/.test(str);
A következő válasz megmutatja a reguláris kifejezések erejét a kód tömör megőrzésében, valamint azt, hogy a ChatGPT képes-e átvenni a meglévő kódot és átírni azt:
A nyílt forráskódú C-kód magyarázata egy GitHub-tárhelyből
Ebben a második példában a Gimp-pel, a nyílt forráskódú grafikus szerkesztővel dolgozom. A 438-as sortól kezdődő kódblokkot vizsgáljuk meg, amely a nyílt forráskódú alkalmazás .PSD import szakaszában fut. Íme a kód:
Ismét megkértem a ChatGPT-t, hogy magyarázza el a kódot, és íme a válasza:
Ez még erősebbé válik, hogy a ChatGPT segítségével nyelvi konverziókat hajthat végre. Megkértem a ChatGPT-t, hogy írja át az eredeti C-ről Pythonra:
Írja át a kódot Pythonban, és tegye a lehető legtömörebbé.
A ChatGPT még a következőket is megjegyezte a kód után: Az eredeti kód g_free függvénye nem szerepel a Python verzióban, mivel a memóriakezelést a Python szemétgyűjtője automatikusan kezeli.
A meglévő kód javítása
Ebben a példában a ChatGPT-t bevittem a kódom egy olyan részébe, amellyel nem vagyok különösebben elégedett. A kódom keresést végez WordPress adatbázisban, és frissít bizonyos elemeket. Íme az eredeti kód:
Megkérdeztem:
Javíthatja a következő kódot
Adott egy új kódblokkot:
Magyarázatot is adott, hogy mit csinált:
Van itt egy furcsaság. Ugyanazt a kódot kétszer futtattam ugyanazon a lekérdezésen keresztül. A második alkalommal egy másik fejlesztést is végrehajtott: Az SQL-lekérdezést úgy módosították, hogy a SELECT használata helyett csak a szükséges oszlopokat válassza ki (opcióazonosító, opciónév és opcióérték). Ez javíthatja a teljesítményt a szükségtelen adatlehívások csökkentésével.
Íme ez a kódblokk:
A kódnak ez a második verziója tartalmazza a legértékesebb változást, javítva az adatbázis-lekérdezés hatékonyságát. Furcsanak tartom, hogy a ChatGPT-nek pontosan ugyanazzal a prompttal betáplált kód két különböző eredményt ad.
Harmadszor is kipróbáltam, és a ChatGPT adott egy kódot, amely hozzáfűzött egy megjegyzést tartalmazó sort: Az SQL-lekérdezést úgy módosították, hogy tartalmazza az opció_érték kiegészítő feltételt, MINT '%testy@test.com%', az eredeti kódban kommentálva. .
Íme a kód:
Ez határozottan nem-nem. Soha ne írd át a kódot, és helyezd vissza a megjegyzésekkel ellátott kódsorba. Ezt a kódot okkal kommentálták.
Szellemi táplálék
Mint sok más, az AI képességeivel kapcsolatos felfedezésünk során, azt tapasztaltam, hogy ez is rendkívül hasznos és egy kicsit kimerítő.
Az utolsó példámban az a tény, hogy a ChatGPT három különböző verziót adott vissza egy kódblokkból, kissé furcsa. Szintén problémás: Az a tény, hogy a harmadik próbálkozása lényegében használhatatlan volt, mert egy megjegyzéssel ellátott kódsort tartalmazott.
Még egyszer a következőt ajánlom: Nyugodtan használja a ChatGPT-t kódolási segítséghez, de ügyeljen arra, hogy az inkonzisztens. Győződjön meg arról, hogy elég jól tudja a kódolást ahhoz, hogy észrevegye ezeket az inkonzisztens eredményeket. Ha Ön kezdő kódoló, ne hagyatkozzon teljesen a ChatGPT-re, hogy elvégzi a munkáját Ön helyett. Ügyeljen arra, hogy megvizsgálja és tesztelje mindazt, amit ad.
Használta a ChatGPT-t kód magyarázatára vagy átírására? Oszd meg velünk az alábbi megjegyzésekben.
A közösségi médiában nyomon követheti a projektekkel kapcsolatos napi híreket. Kövessen engem a Twitteren a @DavidGewirtz címen, a Facebookon a Facebook.com/DavidGewirtz címen, az Instagramon az Instagram.com/DavidGewirtz címen, és a YouTube-on a YouTube.com/DavidGewirtzTV címen.











