Bevezetés: A kód nem törődik a hangulatoddal
A helyzet a nagy nyelvi modellekkel és a kóddal kapcsolatban az, hogy hihetetlenül magabiztosak, ugyanakkor teljesen közömbösek afelől, hogy a programod lefordul-e. A Claude Haiku 4.5 szívesen ír neked egy Python szkriptet a problémád megoldására, plusz még kettőt, amit a sport kedvéért kitalált. A trükk – az egyetlen igazán fontos trükk – abban rejlik, hogy megtanuljuk, hogyan kell úgy utasítani a Claude Haiku 4.5-öt, hogy pontos kódot generáljon, anélkül, hogy a hangulatra hagynánk teret, és maximizáljuk az igazságot. Nem arra van szükséged, hogy a próza kódnak hangozzon. Olyan kódra van szükséged, amely kódként viselkedik. Különbség van a kettő között.
Az emberek úgy kezelik az utasítást, mintha misztikus varázsigét mondanának – mondd ki a megfelelő szavakat, és kapsz egy tökéletes alkalmazást. Ez álcargo-kult gondolkodás. A kód egy szerződés. Ha pontosságot akarsz Claude Haiku-tól, meg kell írnod a szerződést. Hogy ‘Készíts egy webalkalmazást’ az nem szerződés. Az, hogy ‘Generálj egy FastAPI végpontot Python 3.12-ben, amely JSON-t fogad, Pydantic v2-vel validálja a sémát, és sémahíbánál 422-es választ ad vissza egy specifikus payload formátumban’ az már szerződés. Így kell megszabni Claude Haiku 4.5 pontos kódgenerálásához: határozd meg a szerződést.
Mi ez (és mi nem)
- Ez egy útmutató ahhoz, hogyan szerezhetsz megbízható, tesztelhető kódot Claude Haiku 4.5-től.
- Nem egy prédikáció arról, hogy az ‘AI lecseréli a fejlesztőket.’ Az eszközök nem helyettesítik a gondolkodást.
- Gyakorlati utasításokra fókuszál, a szerkezetre és a korlátokra: az unalmas részekre, amelyek működtetik a varázslatot.
Ha futtatható kódot akarsz, meg kell adnod Claude-nak a ‘futtatható’ definícióját. Ha pontos kódgenerálást akarsz, egyszerű, tesztelhető szavakkal kell definiálnod a pontosságot. Ez a játék lényege.
Definiáld a pontosságot jogászként, ne költőként
A ‘pontos’ kód nem egy ‘hihetőnek kinéző’ kód. A pontosság a következő:
- Szintaktikai helyesség: lefordul vagy fut az értelmező alatt.
- Szemantikai hűség: azt csinálja, amit a specifikáció előír.
- Deterministikus viselkedés: ugyanazok a bemenetek ugyanazokat az eredményeket adják, a meghatározott hibahatárok között.
- Verzióhelyesség: a megfelelő SDK-kat, API-verziókat és nyelvi funkciókat használja.
Claude azt adja, amit kérsz. Ha azt kéred, hogy ‘írj egy függvényt, ami listát rendez’, valószínűleg olyat kapsz. Ha azt kéred, hogy ‘stabil, helyben rendező függvényt időkomplexitás O(1) extra memóriával, Timsort szemantikával’, az egy másik ígéret. A ‘Hogyan utasítsd a Claude Haiku 4.5-öt pontos kódgenerálásra’ a pontok leírásával kezdődik.
A minimális értelmes prompt továbbfejlesztve
Rossz: ‘Írj egy Node API-t feladatokhoz.’
Jobb: ‘Írj egy Node 20 Express 4 API-t egy /tasks POST végponttal, amely validálja a mezőket {title: string, dueDate: ISO 8601} és 201-gyel válaszol a létrehozott objektummal vagy 400-al hiba részletekkel.’
Helyes: ‘Generálj egy Node 20 Express 4 szervert egy /tasks POST végponttal. Követelmények: 1) Validálj body-t [email protected]; 2) Mezők: title (nem üres string, max 140 karakter), dueDate (ISO 8601 jövőbeli dátum); 3) Siker esetén: 201 {id: ULID, title, dueDate}; 4) Érvénytelen esetén: 400 {error: 'VALIDATION', details: tömb}; 5) Nincs adatbázis; in-memory Map; 6) Tartalmazzon Jest 29 teszteket érvényes és érvénytelen esetekre (üres title, múltbéli dátum); 7) Adj npm script-eket teszthez és fejlesztéshez; 8) Használj ESM-et; 9) Ne tartalmazzon fölösleges megjegyzéseket.’ Figyeld meg a felépítést: nyelvi verzió, könyvtárak, korlátok, kimenetek, hibák, tesztek, és még a csomagszerkezet is. Eltávolítottad a kétértelműséget. Claude feladata csak a kód kitöltése, nem a követelmények megalkotása.
A vázmintázat: rendszer, specifikáció, tesztek, majd kód
Ha pontos kódgenerálást akarsz Claude Haiku 4.5-től, biztosíts neki egy kifutópályát:
- Rendszer keretezés (rövid póráz)
- Te: ‘Te production quality TypeScript-et írsz Node 20-ra. Csak kódblokkokat adj vissza fájlnevekkel, más semmit.’
- Miért: Te szabályozod a stílust és a kimeneti formátumot. Ne bízd a véletlenre.
- Tartalmazza a nyelvi verziókat, csomagválasztásokat, hiba szemantikákat, I/O formátumokat, teljesítményhatárokat és biztonsági korlátokat.
- Mondd Claude-nak, hogy írjon először egységteszteket. A tesztek jobban definiálják a ‘pontos’-t, mint bármilyen melléknevek. Ha egy kódsor nem szolgál tesztelést, az díszítés.
- Csak a tesztek után. Igen, ez alapvetően TDD, csak egy robotdal, aki soha nem unja a boilerplate írást.
- ‘Ha a tesztek megbuknak vagy importok nem egyeznek, csak a hibás részeket javítsd. Ne írd újra az egész projektet.’
Claude jól működik, ha kontextusa és szabályai vannak. Adj neki szabályokat.
Verziószám lekötése nem opcionális
Claude tanítóanyagai tele vannak régi és új dokumentumokkal – ez udvariasan azt jelenti, hogy sok ellentétes tanácsot látott. ‘Használj React Router-t’ többértelmű. ‘Használj [email protected] data routerekkel’ iránymutatás. Ne bízz az alapértelmezettre: - Nyelvek: rögzítsd a verziót: Python 3.12, Node 20, Go 1.22, Java 21 – amit ténylegesen futtatsz.
- Keretrendszerek: adj pontos főverziókat és minden visszamenőlegesen nem kompatibilis flaget.
- Cloud SDK-k: verziók kiszögelése; aws-sdk v2 és v3 közt különbség van.
- Linters/formatterek: szabályokat adj meg, hogy elkerüld az állandó stílusping-pongot.
Ha nem kötöd le, öt év blogbejegyzés legjobb darabjait kapsz vegyesen. A pontos kódgenerálás allergiás a nosztalgiára.
Mindig séma alapú, mindig
Ne kérj ‘felhasználói profil’ struktúrákat. Definiáld a sémákat az utasításban és követeld a validálást:
- JSON Schema vagy Zod/Yup típusok JS/TS-ben
- Pydantic modellek Pythonban
- Protobuf vagy Avro szolgáltatásokhoz
Majd kényszerítsd Claude-ot, hogy a határoknál – API bemenetek, adatbázírások, üzenetsorok – ellenőrizze a sémákat. Kérj explicit hibapayloadokat és kódokat. A pontosság szereti a sémákat. A kétértelműség nem.
Tedd megfigyelhetővé, vagy ne tégy úgy, mintha élő lenne
Mondd Claude-nak, hogy adjon loggingot, metrikákat és trace-eket oda, ahol szükséged van rájuk – és tartsa őket csendben, ahol nem. Egy jó prompt tartalmazza:
- Logging politika: szintek, személyes adatok redakciója, struktúra (lehetőleg JSON logok)
- Metrikák: kérésenkénti idő, hibaszámok
- Egészségügyi végpontok: /healthz, ami bizonyítja, hogy a függőségek működnek
Claude azt adja, amit kérsz. Ha nem kéred, csak print statementeket kapsz – ha szerencséd van.
Tesztelő utasítások jobbak a ’csak bízz bennem’-nél
Egy jó módja annak, hogy utasítsd Claude Haiku 4.5-öt pontos kódgenerálásra, ha a teszteket teszed a valóság forrásának. Példa:
‘Írj pytest teszteket egy normalize_email(s) függvényhez, amely:
- kisbetűsíti a helyi és domain részt;
- eltávolítja a pontokat csak a helyi részen gmail.com esetén;
- eltávolítja az al-címkéket (+tag) csak gmail.com esetén;
- elutasít olyan bemeneteket, amelyekben nincs egyetlen @ vagy vannak szóközök;
- megőrzi az unicode domain punycode formáját.
Fedje le az élő példákat. Tesztek írása után implementálja a függvényt a tesztek sikeres lefuttatásához.’
Claude gyakran jobb kódot ír, amikor kényszerítik, hogy megfeleljen a leírt teszteknek. Ha nem sikerül, az egy konkrét hiba, nem hangulati vita.
Hallucinációk kizárása az alapoktól
Nem lehet teljesen eltüntetni a hallucinációkat, de bekeríthetők:
- Kérj hivatkozásokat vagy forrás URL-eket csak akkor, ha léteznek források. SDK metódusoknál követeld a dokumentációs linkeket, és a kód igazodjon ezekhez.
- Privát API-knál másold be a specifikációt a promptba. Ne várd el, hogy Claude ismerje belső végpontjaidat.
- Zavaró API-k esetén illessz be egy példát az hivatalos dokumentációból, és mondd Claude-nak, hogy tartsa magát ahhoz.
A pontos kód leginkább pontos hivatkozások. Add meg nekik a hivatkozásokat.
Stílus útmutatók: a legkevésbé szexi, leginkább hasznos dolog
Claude az általa értett stílusban ír. Ez folyamatos újraíráshoz vezet. Másold be a stílus útmutatódat. Határozd meg:
- Formázás (Prettier, Black, gofmt alapértelmezett)
Követelj rövid indoklást a nem nyilvánvaló választásokhoz. A jövőbeli önmagad hálás lesz, és az aktuális Claude kevesebb javító PR-t készít.
Hosszú promptok, rövid outputok
Egy másik nézőpont arra, hogyan utasítsd Claude Haiku 4.5-öt pontos kód generálására: költsd a szavaiddat a promptba, ne a kimenetbe. Azt akarod, hogy:
- Kimerítő korlátok a promptban
- Minimális fölösleges narráció a kimenetben
Mondd meg neki, hogy ne magyarázzon, csak kódblokkokat adjon vissza fájlnevekkel és egy rövid README-vel. Ha kommentárt akarsz, kérd külön futtatásban. A próza és a kód keverése a hibák melegágya, kalappal és monoclessel.
Finomhangolás: a szoros kör, ami tényleg működik
A leggyorsabb út megbízható kódhoz nem az, hogy elsőre tökéletes legyen. Hanem a rövid, korrekciós körök:
- Generálj teszteket és kódot.
- Futtasd helyben. Másold vissza a sikertelen tesztek és fordító hibák pontos kimenetét Claude-hoz.
- Utasítás: ‘Csak a szükséges minimális sorokat módosítsd; ne változtasd meg a függvény aláírását, ha azt nem követelik a sikertelen tesztek.’
- Ismételd, amíg zöld nem lesz.
Claude kiválóan alkalmazza a különbségeket, ha pontosan megmondod, mi ment tönkre. Ne fogalmazd át a hibákat. Másold be őket. A napló a valóság.
A biztonság funkció, nem utóirat
Mivel a modelleket nyilvános kódra tanították (jóra, rosszra, átokkal terheltekre), fontos, hogy a biztonságot elsőrendű követelményként kezeld:
- Kifejezetten tiltsd az eval-t, shell=True-t és a stringként kezelt SQL-t
- Követeld a paraméterezett lekérdezéseket, CSRF védelmet, és korlátozást
- Kérj verzió lekötést plusz lockfile-t
- Követeld a titkok kezelését környezeti változókon vagy titokkezelő rendszeren keresztül
Egy alapból biztonságos prompt biztonságosabb kódot eredményez. A ‘majd később javítjuk’ prompt címlapokra.
Teljesítmény: Mondd meg, mit jelent a ‘gyors’
A ‘igyál gyors legyél’ azt jelenti, hogy ‘csinálj amit akarsz’. Ehelyett specifikálj mértékeket:
- Várakozási idő célok (p95 < 50ms memóriában, p95 < 300ms DB műveleteknél)
- Memóriahatárok (RSS < 150MB)
- Időkomplexitás (kell O(n log n), nem O(n^2))
Claude olyan algoritmust választ, ami belefér a költségvetésbe. Add meg a költségvetést.
Dokumentáció: Elég, hogy egy idegen elinduljon
Kérj README-t Claude-tól, mely tartalmazza:
- Beállítási instrukciók pontos verziókkal
- Parancsok teszthez, linteléshez, típusellenőrzéshez, futtatáshoz
- Példa kérések és válaszok
- Korlátozások és ismert kompromisszumok
A ‘pontos kód’ tartalmaz pontos dokumentációt is. Ez része a szállítmánynak.
Konkrét prompt sablonok, amiket ellophatsz
Sablon: Backend végpont
Rendszer: Gondos Python 3.12 mérnök vagy. Csak kódblokkokat adj vissza fájlnevekkel.
Felhasználó:
- Készíts FastAPI 0.111 alkalmazást egy POST /convert végponttal.
- Kérés: {amount: Decimal stringként, from: 'USD'|'EUR', to: ugyanez}.
- Validáld pydantic v2-vel; sémahibánál 422-es forma visszatérése.
- Használj tiszta függvényt convert(amount, from, to) fix árfolyamokkal {USD:1, EUR:1.1}.
- Visszatérés {amount: string, currency: string} 200-as kóddal.
- Tartalmazzon pytest teszteket érvényes, érvénytelen (rossz decimal, ismeretlen kód), és szélsőséges (0) esetekre.
- Adj pyproject.toml fájlt rögzített függőségekkel, tartalmazza ruff és mypy konfigurációkat.
- Nincs hálózati hívás, nincs kommentár.
Sablon: CLI util
Rendszer: Go 1.22-t írsz. Csak kódblokk fájlnevekkel.
Felhasználó:
- Készíts slugify nevű CLI eszközt, ami stdin-ről olvas és URL-barát slugokat ír ki.
- Szabályok: kisbetűs, ASCII-only, kötőjel elválasztók, whitespace összezúzás, írásjelek eltávolítása.
- Adj main.go és slugify_test.go fájlokat táblázatos tesztekkel.
- Csak Go standard könyvtárat használj.
- Adj Makefile-t teszt és build célokkal.
Sablon: Frontend komponens
Rendszer: Pragmatikus React mérnök vagy React 18 + TypeScript célzással.
Felhasználó:
- Valósítsd meg a <DebouncedInput> komponenst.
- Props: value: string, onChange(value): void, delay=300.
- Használd useRef/useEffect; ne harmadik féltől származó hookokat.
- Tartalmazzon vitest teszteket hamis időzítőkkel.
- Adj minimális Storybook történetet.
Ezek a sablonok megmutatják, hogyan utasítsd a Claude Haiku 4.5-öt pontos kódgenerálásra verziók lekötésével, viselkedés definiálásával és tesztek követelésével.
Ne legyen okos: mikor mondj nemet az ‘optimalizálásra’
Ha nem akarod az idő előtti mikro-optimalizálást (és nem akarod), mondd ezt:
- ‘Olvashatóság előnyben a trükközéssel szemben; bitmanipuláció csak ha a tesztek megkövetelik.’
- ‘Ne használj rekurziót, ha az iteratív tisztább.’
- ‘Ne használj metaprogramozást; explicit jobb, mint implicit.’
Claude szeret lenyűgözni. Ne engedd neki. Írasd meg vele, hogy menjen át a teszteken és legyen olvasható. Ez elég lenyűgöző.
Sider.AI a munkafolyamatban, ahol tényleg hasznos Láttam, ahogy emberek random chatfülkékben dobálgatják az utasításokat, mint valami produktivitási rituálét. Használj olyan munkaterületet, ami érti a kód kontextusát. Sider.AI például úgy épült, hogy a specifikációt, kódot, különbségeket és teszt naplókat egyszerre mutassa, így a ‘beilleszted a hibát, javítod a sort’ ciklus tényleg szoros. Ez nem varázslat; ez unalmas váz, ami segít, hogy ne veszítsd el a fonalat. Ha az eszközöd ugyanabban a beszélgetésben tartja a szerződést, a teszteket és a kódot – anélkül, hogy konfettivel zavarna –, használd. A Sider erre való. Hogyan hibakeress Claude-dal csapattársként, nem jósoként
- Másold be a sikertelen teszt kimenetet pontosan, ahogy van. Ne foglald össze.
- Kérj egy diffet: ‘Válaszolj egységes diff formában csak a X fájlra vonatkozóan.’
- Futásidejű hibáknál adj meg egy minimális reprodukálható példát, és kérj magyarázatot plusz javítást.
- Könyvtári hibáknál illeszd be a szerinted releváns dokumentációs kivonatot, és kérdezd: ‘Ez a helyes API az X verzióhoz? Ha nem, frissítsd a kódot és idézd a helyes kivonatot.’
A cél az, hogy Claude érveljen bizonyítékokkal. Te hozod a bizonyítékot.
A buktatók felvonulása (és hogyan kerüld el őket)
- Az ‘aktuális’ API csapda: Ne mondd, hogy ‘használd a legújabbat.’ Mondd, hogy ‘használd az X.Y verziót’ és ragaszkodj hozzá.
- Az üres tesztfájl: Ha nem követled meg a teszteket, nem kapsz teszteket.
- Az egypróbás tévedés: Számolj két-három rövid finomhangolással. Ez gyorsabb, mint egy hatalmas prompt.
- A kétértelmű hibapolitika: Határozd meg a státuszkódokat és a hibaforrmátumokat. A ’hibát adj vissza’ nem mond semmit.
- A nem kezelt függőség: Ha a kód egy olyan szolgáltatást használ, amely nem a tiéd, stubold le. Kérj fake-eket.
Az utasítás ellenőrzőlista (Ragaszd a monitorodra)
- Nyelv és futtatói verzió lekötve
- Hibaszemantika definiálva (kódok, formák)
- Először tesztek, majd kód
- Biztonsági korlátok explicit
- Teljesítménykeretek rögzítve
- Stílus és szerkezet megadva
- Kimeneti formátum korlátozva (fájlnevek, kódblokkok, diff-ek)
- Rövid finomhangoló körök beillesztett naplókkal
Ha ezt a tízet mind teljesíted, a Claude Haiku 4.5 általában pontos kódgenerálást produkál, ami megállja a helyét a valóságban.
Egy kidolgozott példa: Homályostól az ellenőrzöttig
Homályos prompt: ‘Írj egy biztonságos CSV beolvasó függvényt.’
Eredmény: Valószínűleg működik, esetleg hibás, biztosan nincs tesztelve.
Pontos prompt:
„Python 3.12-ben írsz. Csak kódblokkokat adj vissza fájlnevekkel.
Hozz létre csvsafe/init.py és csvsafe/reader.py fájlokat egy read_rows(path: Path) -> list[dict[str,str]] függvénnyel. Követelmények: csv.DictReader használata newline='' és encoding='utf-8'; null bájtok tiltása; 10MB-nál nagyobb fájlok elutasítása; oszlopok max 100; BOM eltávolítása; üres cellák üres stringként kezelése; ValueError-t dobj a következő kódokkal {FILE_TOO_LARGE, NULL_BYTE, TOO_MANY_COLUMNS}. Tartalmazzon teszteket pytest-tel a tests/test_reader.py-ben boldog út, null bájt, 11MB fájl, 101 oszlop és BOM esetére. Adj pyproject.toml-t rögzített függőségekkel és black configgal.”
Kód, tesztek és él esethandle megközelítés. Utána futtatod a teszteket, beilleszted a hibákat, és iterálsz minimális különbségekkel. Ez a pontos kódgenerálás a gyakorlatban.
A ‘kreativitásról’ és más marketing szavakról
Nincs szükségem ‘kreatív’ kódra. Pontos kódra van szükségem. A kreativitást tartogasd a macskád nevére. Claude utasításainak a kreativitás a szilárd korlátok természetes mellékterméke. A helyes tesztek és egyértelmű specifikációk elegáns megoldásokat eredményeznek. A rossz promptból ‘émojikkal újrafeltalált base64’ lesz. Ne kísértsd.
Az el nem mondott titok
A mód, ahogy a Claude Haiku 4.5-öt pontos kódgenerálásra utasítod, unalmas: írd le, amire szükséged van, köss le verziókat, definiáld a sémákat, követeld a teszteket, és iterálj valós hibákra. Ennyi. Nincs misztika. Csak mérnöki fegyelem egy olyan modellel, amely nagyon gyorsan tud gépelni és nem bánja, hogy majdnem tizenöt majdnem azonos teszt esetet ír meg.
És ez a csavar: a pontosság egyáltalán nem szívmelengető. Azok az utasítások, amelyek működnek, mint egy TSA ellenőrzőlista olvashatók. Az a kód, ami élesedik, úgy olvasható, mintha egy gondos ember írta volna. Mindkettőt megkapod, ha a modellt úgy kezeled, mint egy junior mérnököt, aki világos követelmények mellett virágzik, és elvész a homályos instrukciókban. Adj neki szerződést. Tedd, hogy menjen át a teszteken. Akkor talán megbízhatsz benne – olyan bizalommal, amit egy eszköznek adsz, nem pedig egy jósnak.
Összegzés: kevesebb varázslat, több garancia
Ha varázslatra vágysz, menj varázsló show-ra. Ha olyan szoftvert akarsz, ami lefordul és működik, írj utasításokat, amelyek garanciákként működnek. A ‘Hogyan utasítsd a Claude Haiku 4.5-öt pontos kódgenerálásra’ nem virágos fogalmazásról vagy titkos kulcsszavakról szól. A korlátokról, tesztekről, verziókról és visszacsatolási körökről szól. Tedd meg ezeket a négy dolgot, és kódot kapsz, ami fut. Ha kihagyod, szép formázású fikciót kapsz.
A kód nem törődik a hangulatoddal. Szerencsére a tesztek sem.
GYIK
1. Kérdés: Mi a legegyszerűbb módja annak, hogy a Claude Haiku 4.5 pontos kódot generáljon?
Tekintsd szerződésnek: rögzítsd a verziókat, határozd meg a sémákat, specifikáld a hibaformátumokat, és először kérj teszteket. Minél világosabbak a korlátok, annál pontosabb a kód.
2. Kérdés: Hogyan csökkenthetem a hallucinációkat, amikor Claude kódot ír?
Másold be a mérvadó dokumentációkat vagy specifikációkat, és követeld meg azok pontos API-jainak betartását. Privát végpontok esetén add meg a saját specifikációdat – ne várd el, hogy kitalálja.
3. Kérdés: Kérjek teszteket Claude-tól, vagy írjam meg én magam?
Kérd meg Claude-ot, hogy először generáljon teszteket, majd implementálj kódot a tesztek teljesítéséhez. A tesztek jobban definiálják a pontosságot, mint a melléknevek, és őszintén tartják a modellt.
4. Kérdés: Mennyire legyen konkrét a verziórögzítés az utasításokban?
Nagyon konkrét: a nyelv futtatókörnyezete, a keretrendszer fő-/alverziója és az SDK verziói. A „legújabb” ütköző mintákat eredményez; a pontosság a stabil célpontoktól függ.
5. Kérdés: Hol illeszkedik a Sider.AI a pontos kódoláshoz való utasításokba?
A Sider.AI segítségével a specifikációk, a kód, a diffek és a tesztnaplók egyetlen hurokban tarthatók. Nem csinál varázslatot – csak megőrzi a kontextust, így Claude javításai nyomon követik a tényleges hibáidat.