Egy valódi fejlesztési folyamat AI-asszisztenssel: Tapasztalatok a frontvonalról
Gyakran felmerül a kérdés, hogy a gyakorlatban hogyan is néz ki egy komolyabb, nem triviális funkció lefejlesztése egy már meglévő projektbe AI-segítséggel. Mitchell Hashimoto most erre adott egy kimerítő, kézzelfogható választ. Egy konkrét példán keresztül mutatta be, hogyan készített egy letisztult, diszkréten működő automatikus frissítési felületet a Ghostty nevű terminál emulátorához, méghozzá Swift nyelven.
Mitchell a teljes folyamatot dokumentálta: 16 kódolási szakasz teljes átiratát osztotta meg, amelyeket az Amp Code nevű eszközzel hajtott végre. Az egész munka két napot és nagyjából 8 óra gépidőt vett igénybe, a tokenköltsége pedig mindössze 15,98 dollár volt. Érdemes megjegyezni, hogy az Amp Code megosztott átirat (transcript) funkciója kiemelkedően jó – ahogy a példa is mutatja –, jó lenne, ha a többi hasonló eszköz (Claude Code, Codex CLI, Gemini CLI) is átvenné ezt a megoldást.
A megosztott anyagból rengeteg hasznos tippet és trükköt leshetünk el. Lássuk a legfontosabbakat egy AI biztonsági szakértő szemével!
Tanulságok és bevált gyakorlatok egy profi tollából
A „rendrakás” lépésének fontossága
Az egyik leglényegesebb tanulság, amit Mitchell kiemel, az a rendszeres „takarítási” fázis beiktatása. Ahogy ő fogalmaz:
„A rendrakás lépése tényleg fontos. Ahhoz, hogy hatékonyan tudj rendet tenni, elég jól kell értened a kódot, így ez a fázis arra kényszerít, hogy ne fogadjam el vakon az AI által írt kódot. Ráadásul a jobban szervezett és dokumentált kód a későbbi, AI-vezérelt munkamenetek teljesítményét is javítja. Néha csak viccesen úgy hivatkozom erre, mint az ‘anti-slop munkamenet’.”
AI biztonsági szempontból ez kulcsfontosságú.
Az AI által generált kód vakon elfogadása óriási kockázatot rejt magában!
Ez a módszer arra ösztönöz, hogy folyamatosan felülvizsgáld és megértsd a generált kódrészleteket, ami elengedhetetlen a rejtett sebezhetőségek és logikai hibák kiszűréséhez.
Néha egy kis kézi munkával kell rávezetni az AI-t a helyes útra
Másik érdekes megfigyelés, hogy időnként egy kis manuális beavatkozás csodákra képes, és sokkal jobb eredményre vezeti az AI-t a későbbiekben.
„Szántam egy kis időt arra, hogy manuálisan átstrukturáljam a view modelt. Ez azt jelentette, hogy egy ‘tagged union’-ra váltottam a sok opcionális mezőt tartalmazó struktúra helyett. Átneveztem típusokat, áthelyeztem dolgokat. Tapasztalatból tudtam, hogy ez a kis kézi munka a folyamat közepén megalapozza az AI-ügynökök sikerét a későbbi, frontendet és backendet is érintő feladatok során.”
Miután ezzel végzett, maratoni rendrakási fázissal folytatta a munkát. Íme egy példa az egyik ilyen refaktoráló promptra:
Turn each @macos/Sources/Features/Update/UpdatePopoverView.swift case into a dedicated fileprivate Swift view that takes the typed value as its parameter so that we can remove the guards.
A záró „orákulum” prompt
Hashimoto azt javasolja, hogy minden munkamenetet egy ehhez hasonló, a lehetséges hiányosságokat firtató kérdéssel zárjunk, amivel rávesszük a modellt a kód átfogó elemzésére.
„Látsz még bármilyen más fejlesztési lehetőséget a @macos/Sources/Features/Update funkcióval kapcsolatban? Ne írj kódot. Csak konzultálj az orákulummal. Vedd fontolóra azokat a kódrészleteket is, amelyekhez több unit tesztet lehetne adni.”
A „Consult the oracle” (Konzultálj az orákulummal) egy Amp-specifikus parancs, ami arra utasítja az eszközt, hogy egy drágább, de jóval képzettebb és alaposabb modellt használjon az elemzéshez. Ez egyfajta „második vélemény”, ami segíthet felfedezni azokat a gyenge pontokat vagy hiányosságokat, amik felett elsiklottunk.
Megéri? Gyorsabb vagy nem?
Az interneten sokan vitatkoznak azon, hogy az AI-jal valóban gyorsabban lehet-e dolgozni. Mitchell szerint ebben az esetben egyértelműen igen.
„Szerintem gyorsabban szállítottam le ezt a funkciót, mintha mindent egyedül csináltam volna. Különösen azért, mert a SwiftUI apróbb stílusbeli finomhangolásai számomra borzasztóan unalmasak és időigényesek, az AI pedig ezt a feladatot remekül elvégzi.”
De hozzáteszi, hogy a gyorsabb/lassabb vita számára személyesen nem ragadja meg a lényeget. Az igazi érték valami másban rejlik:
„Számomra az a legnagyobb előny, hogy az AI tud helyettem dolgozni, amíg én félreállok, hogy más dolgokkal foglalkozzak.”
És ez a gondolat talán mindennél fontosabb. Nem csupán egy eszközt kapunk, amivel gyorsabban kalapálhatjuk a kódot, hanem egyfajta asszisztenst, ami képes önállóan haladni, amíg mi a nagyobb képpel, a stratégiai kérdésekkel vagy akár egy kávészünettel foglalkozunk.