Hogyan kódolj AI-val biztonságosan és hatékonyan
Instruáld úgy az AI-t, mint egy kollégát, majd ellenőrizd úgy, mint egy bíráló. Promptok hibakereséshez, új kódhoz és tesztekhez.

Az AI-chat kifejezetten hasznos programozáshoz: elmagyarázza az ismeretlen kódrészeket, segít megtalálni a hibák okát, boilerplate kódot és teszteket ír, vagy épp bevezet egy új nyelvbe vagy könyvtárba. Ugyanakkor elég gyakran téved magabiztosan ahhoz, hogy minden választ úgy kezelj, mint egy gyors, de felületes kolléga pull requestjét. Ez az útmutató bemutatja, hogyan kérdezz hatékonyan, és hogyan ellenőrizd a kapott eredményt.
Miben jó az AI-chat a kódolás során?
- Kódmagyarázat: „magyarázd el ezt a függvényt sorról sorra”.
- Hibakeresés (debugging): hibaüzenetek és stack trace-ek értelmezése, a valószínű kiváltó okok felvázolása.
- Kisebb, jól körülhatárolt függvények: dátumformázás, bemenetek ellenőrzése, adattranszformáció.
- Boilerplate kódok: konfigurációs fájlok, parancssori argumentumok feldolgozása, alapvető API-kezelők.
- Tesztek: unit tesztek vázlata, beleértve a kifelejtett szélsőséges eseteket (edge cases).
- Regex, SQL és shell egysorosok, az egyes részek részletes magyarázatával.
- Tanulás: „ismerem a Pythont; mutasd meg, hogyan néz ki ugyanez Go-ban, és magyarázd el a különbségeket”.
- Kódellenőrzés (code review): olvashatósági hibák, hiányzó hibakezelés és nyilvánvaló biztonsági rések észrevétele.
Kevésbé megbízható a teljes kódbázist érintő, nagyobb léptékű tervezési döntéseknél, a vadonatúj könyvtárverzióknál, amelyeket még nem ismerhet, és minden olyan részletnél, amit nem lát közvetlenül. Egy olyan felületen, mint a ChatG, az AI kizárólag azt látja, amit bemásolsz. Nem tudja megnyitni a fájljaidat, és nem tudja futtatni a kódodat.
Hogyan kérj hibajavítást?
A gyenge válaszok leggyakoribb oka a hiányzó kontextus. Egy jó hibakereső prompt öt elemből áll: a nyelv és verziója, a releváns kód, a teljes hibaüzenet, az elvárt viselkedés a tényleges helyett, valamint az, amit már megpróbáltál.
Gyenge: Nem működik a kódom, javítsd meg. [200 sor bemásolva]
Hatékony: Python 3.12, pandas 2.x. Ennek a függvénynek az egy ügyfélre jutó átlagos rendelési értéket kellene visszaadnia, de a következő hibát dobja: KeyError: 'customer_id'. Kód: [csak a függvény és egy 5 soros mintahalmaz bemásolva] Teljes traceback: [bemásolva] Ellenőriztem, a CSV-ben szerepel a customer_id oszlop. Mik a valószínű okok? Magyarázd el a javítást, mielőtt megmutatnád a javított kódot.
Csökkentsd a kódot a legkisebb olyan méretre, amely még reprodukálja a problémát. Ez sokszor már önmagában felszínre hozza a hibát, és segít a lényegre fókuszálni. Megnyithatsz egy hibakereső promptot a chatben, és egyszerűen kitöltheted a hiányzó részeket.
Hogyan kérj új kódot?
Írj egy mini specifikációt. Minél pontosabban leírod a bemeneteket, a kimeneteket és a szélsőséges eseteket, annál kevesebb dolgot kell utólag javítanod.
Írj egy TypeScript függvényt slugify(title: string): string formátumban. - Csak kisbetűs ASCII; írd át az ékezetes betűket (például: é -> e). - Cserélj bármilyen egymást követő nem alfanumerikus karaktert egyetlen kötőjelre. - Vágd le a kötőjeleket mindkét végéről; maximális hossz 60, soha ne vágj szót ketté. - Külső könyvtárak használata nélkül. Ezután írj 8 unit tesztet Vitesttel, beleértve egy üres karakterláncot és emojikat tartalmazó bemenetet is.
Mindig a kóddal együtt kérd a teszteket is. Ha az AI által generált tesztek és kód nincsenek összhangban, még azelőtt kiszűrheted a hibát, hogy az éles környezetbe kerülne.
Mindent ellenőrizz élesítés előtt
Az AI által generált kód tűnhet tisztának úgy is, hogy közben hibás. Építsd be ezeket az ellenőrzéseket a napi rutinodba:
- Futtasd le. Soha ne tegyél kódot a projektbe anélkül, hogy lefutattad volna a tesztjeivel együtt.
- Ellenőrizd, hogy minden függvény és beállítás létezik-e. Az AI néha nem létező metódusokat, paramétereket vagy konfigurációs kulcsokat talál ki, vagy régebbi verziókból vesz át elemeket. Nézz utána a hivatalos dokumentációban ahhoz a verzióhoz, amit valóban használsz.
- Telepítés előtt ellenőrizz minden csomagnevet. Biztonsági kutatók többször kimutatták, hogy az AI-asszisztensek olykor nem létező csomagokat ajánlanak, a támadók pedig regisztrálhatják ezeket a neveket kártékony kódokkal (ezt a támadási formát nevezik „slopsquatting”-nak). Mindig bizonyosodj meg róla a hivatalos csomagtárban, hogy a csomag valódi és karbantartott, mielőtt telepítenéd.
- Nézd át biztonsági szempontból. Keresd a karakterlánc-összefűzéssel épített SQL-lekérdezéseket, a hiányzó bemeneti ellenőrzéseket, a kikapcsolt tanúsítvány-ellenőrzéseket, a kódban felejtett titkos adatokat és a túlságosan tág jogosultságokat. Kérdezd meg közvetlenül az AI-t: „Nézd át ezt a kódot biztonsági szempontból, feltételezve, hogy minden bemenet rosszindulatú.”
- Olvasd el, amíg meg nem érted. Ha nem tudod elmagyarázni, mit csinál egy kódblokk, kérdezz rá, vagy ne olvaszd be (merge). Végül te leszel az, akinek karban kell tartania.
Ne másolj titkos adatokat és privát kódot a chatbe
Soha ne illessz be API-kulcsokat, jelszavakat, tokeneket, privát kulcsokat vagy adatbázis-kapcsolati karakterláncokat semmilyen AI-chatbe. Helyettesítsd őket helyőrzőkkel, mint például: YOUR_API_KEY. Ha véletlenül valós titkos adatot osztottál meg a saját rendszereiden kívül, haladéktalanul cseréld le (rotate).
Ha munkáltatónak vagy ügyfélnek fejlesztesz, ellenőrizd az irányelveiket, mielőtt a kódjukat külső AI-szolgáltatásba másolnád. Sok vállalat kizárólag jóváhagyott eszközök használatát engedélyezi a védett kódokhoz. Ha bizonytalan vagy, egyszerűsítsd le a problémát egy általános példára, amely semmit sem árul el a projektről. Az AI adatvédelmi és biztonsági útmutatónk részletesebben is kitér erre.
Hasznos promptok fejlesztőknek
Magyarázd el ezt a kódot egy olyan fejlesztőnek, aki ismeri a(z) [nyelv] nyelvet, de ezt a könyvtárat nem. Haladj blokkról blokkra, majd listázd mindazt, ami kockázatosnak vagy elavultnak tűnik. [kód bemásolása]
Nézd át ezt a diffet úgy, mint egy senior mérnök. Csoportosítsd az észrevételeidet a következő kategóriákba: hibák, biztonság, teljesítmény és olvashatóság. Légy konkrét, és idézd a vonatkozó sorokat. [diff bemásolása]
Írj egy reguláris kifejezést a következőre: [leírás]. Magyarázd el az egyes részeit, majd adj meg 5 egyező és 5 nem egyező mintaszöveget.
Jól ismerem a Pythont, és épp Rustot tanulok. Mutasd meg, hogyan oldható meg a következő feladat Rustban: [feladat], és magyarázd el az ownership és borrowing fogalmát úgy, mintha még sosem hallottam volna róluk.
Még több példát találsz a programozási promptok gyűjteményében. Gyors, egyszeri feladatokhoz a kódasszisztens eszköz egy leírásból vagy kódrészletből kiindulva magyarázattal ellátott kódot ad, a beépített programozó asszisztens pedig a teljes beszélgetés során megőrzi a fejlesztőközpontú stílust.
Gyakori hibák
- A teljes projekt bemásolása. A túl hosszú szövegek elfedik a lényeget, és meghaladhatják azt a mennyiséget, amit az AI egyszerre feldolgozni képes. Csak a releváns fájlokat vagy függvényeket küldd el.
- A tünetet elfedő „javítás” elfogadása. Ha mindent becsomagolsz egy try/except blokkba, attól csak a hibaüzenet tűnik el, nem maga a hiba. Kérdezz rá, miért keletkezik a hiba.
- Körbe-körbe járás. Ha két-három próbálkozás sem vezet eredményre, állj meg, és válts stratégiát: adj több kontextust, hozz egy kisebb példát, vagy indíts egy új chatet a probléma letisztult összefoglalásával.
- A verziók elhagyása. A keretrendszerek API-jai jelentősen változnak a főverziók között, ezért mindig jelöld meg, melyiket használod.
- A licencek figyelmen kívül hagyása. Ha az AI felismerhetően másol be egy nagyobb kódrészletet máshonnan, ellenőrizd annak licencét a felhasználás előtt.
Lásd még: hogyan használják a fejlesztők a ChatG-t és az általános promptírási útmutató.
Egy munkafolyamat, amellyel kezedben tarthatod az irányítást
- Először a célt írd le, kód nélkül. Kérj két-három lehetséges megközelítést és ezek előnyeit-hátrányait, még mielőtt bármilyen kód megszületne.
- Válassz ki egy megközelítést, és kérj egy kis első lépést. Egyszerre egy függvényt vagy egy fájlt sokkal könnyebb átnézni, mint egy komplett funkciót.
- Futtasd le, és jelezz vissza. A tényleges kimenetet vagy hibát másold be, ne csak annyit, hogy „nem működik”.
- Kérj teszteket, majd átvizsgálást. A „milyen szélsőséges eseteket nem vesz ez figyelembe?” kérdés gyakran fényt derít a következő hibára.
- A commit üzenetet te magad írd meg. Ha nem tudod összefoglalni, mi változott és miért, akkor még nem érted eléggé a módosítást.
Gyakori kérdések
Kiválthatja az AI a programozás megtanulását?
Nem. Azok munkáját gyorsítja fel, akik tudnak kódot olvasni és értékelni. Ha nem tudod megállapítani egy válaszról, hogy helyes-e, nem használhatod biztonságosan. Használd az AI-t a gyorsabb tanulásra: kérdezz rá a „miért”-re is, ne csak a „mit”-re.
Milyen programozási nyelveket támogat?
Az AI-chat általában megbízhatóan kezeli az olyan elterjedt nyelveket, mint a Python, JavaScript, TypeScript, Java, C#, C++, Go, PHP, SQL és a shell szkriptek, míg a ritkább nyelveknél kevésbé pontos. A minőség a vadonatúj könyvtárak és verziók esetében is visszaeshet.
Képes a ChatG futtatni a kódomat, vagy látja a tárolómat (repository)?
Nem. A ChatG egy chatfelület: kizárólag azt látja, amit bemásolsz, és nem hajt végre kódot. Mindent a saját környezetedben futtass és tesztelj.
Biztonságos az AI által generált kód kereskedelmi célú felhasználása?
Kezeld úgy, mint bármilyen külső forrásból származó kódot: nézd át, teszteld, ellenőrizd a függőségek és a másoltnak tűnő kódok licenceit, és kövesd a munkáltatód belső szabályzatát. Ez általános tájékoztatás, nem minősül jogi tanácsadásnak.
Bármikor készen áll
Nyisd meg a chatet, és tedd fel az első kérdésed. Ingyenes, és nem kell hozzá letölteni semmit.
Beszélgetés indítása

