Nyereség:
- Lehetőség egy idegen kód alapszintű leképezésére mesterséges intelligencia segítségével, és a funkciók végpontok közötti nyomon követésére
- Képes összetett funkciók lépésről lépésre történő elmagyarázására és az adatáramlás figyelésére
- Képes az AI leírását hipotézisként tekinteni és a kritikus állításokat kódban ellenőrizni
A fejlesztők inkább olvasnak kódot, mint írnak. Amikor új munkahelyet kezd, átvesz egy szolgáltatást, amelyet valaki más hagyott meg, vagy hozzájárul egy nyílt forráskódú könyvtárhoz, az első feladat a „mi folyik itt?” hogy választ találjunk a kérdésre. A mesterséges intelligencia ezt a felfedezési feladatot órákra, mint hetekre csökkentheti – de csak akkor, ha megfelelő kérdésekkel és ellenőrző reflexszel használják.
Ebben az egységben megtanuljuk a mesterséges intelligencia „kódkalauzként” használatát: idegen kódbázis leképezését, összetett függvény egyszerű nyelvre fordítását, adatfolyam követését és egy könyvtár használatának kitalálását. Az aranyszabály itt az, hogy az MI magyarázata egy hipotézis; magával a kóddal igazolod.
Miért hatékony, de kockázatos a kódmagyarázat?
Egy LLM nagyon jól beolvas egy kódrészletet és lefordítja azt emberi nyelvre, például "ez a funkció frissíti a felhasználói munkamenet tokent"; mert milliónyi hasonló példából tanult mintákat. Ez óriási időt takarít meg, különösen hosszú és beágyazott függvények esetén.
Itt van a kockázat: a modell néha azt mondja meg, hogy mit tesz a kód, nem pedig azt, hogy valójában mit csinál. Ha a változó neve isAdmin, de a belső logika fordított, akkor a modell megnézheti a nevet, és rossz összegzést bont ki. Ezért, mielőtt az állítást kritikus döntései alapjául tenné, szemrevételezéssel ellenőrizze az állítólagos viselkedést a megfelelő sorokon. A leírás a megfelelő helyre viszi; A kód mondja ki az utolsó szót.
Vigyázat: Ne tekintse az AI „ez a kód X” összefoglalóját önmagában bizonyítéknak egy biztonsággal vagy pénzáramlással kapcsolatos döntésben. Az összefoglaló egy térkép, amely megmutatja, hol kell keresni; A kódban megadod a megerősítést.
Külföldi kódbázis feltérképezésének lépései
- Kezdje a legfelső szinten. Először ismerkedjen meg a mappaszerkezettel és a belépési pontokkal (fő, alkalmazásindítás, otthoni útválasztó). Kérdezd meg az AI-t, hogy "milyen rétegei vannak az alkalmazásnak ezen a könyvtárszerkezeten alapulóan?" kérdez.
- Kövesse nyomon a funkciókat a végétől a végéig. "Mely fájlok aktiválódnak és milyen sorrendben, amikor a felhasználó bejelentkezik?" - egyetlen áramlást figyelni tanulságosabb, mint a teljes architektúrát elolvasni.
- Lokalizálja a kifejezéseket. Kérdezze meg a mesterséges intelligencia projektspecifikus fogalmait ("bérlő", "főkönyv", "munkafutó"), és keresse meg a megfelelőjüket a kódban.
- Leegyszerűsítetted az összetett függvényt. Írjon le egy hosszú funkciót lépésről lépésre, majd jelölje meg ezeket a lépéseket a kódban.
- Ellenőrizze. Végezzen egy kis változtatást, és futtasson teszteket, hogy tesztelje megértését; A teszt azonnal megmondja, ha rosszul értelmezed.
Három mini tok
1. eset – Az örökölt szolgáltatás 2 napról 3 órára csökkent. Egy fejlesztő egy 4000 soros fizetés-egyeztetési szolgáltatást vett át egy távozó kollégától. A mesterséges intelligencia összefoglalta a modulokat, és végigkövette a fizetési folyamatot; Személyesen ellenőrizte a kód két kritikus funkcióját. A felfedezés, amely a becslések szerint 2 napig tartott a klasszikus "vakolvasással", körülbelül 3 óra alatt készült el az ellenőrzött AI módszerrel.
2. eset – Félrevezető névcsapda. Az egyik funkciót validateAndSave-nek hívták, de az AI-összefoglaló azt mondta, hogy "először érvényesíti, majd elmenti". Amikor a fejlesztő belement a kódba, látta, hogy a mentés az ellenőrzés előtt megtörtént, és az ellenőrzés csak a naplóba írt. Ez volt a valódi kiváltó oka a hibajegynek a gyártásban. Ha nincs érvényesítés a kódban, a hamis összegzés elrejti a hibát.
3. eset – Az új könyvtári tanulás felgyorsult. A csapat egy olyan üzenetsor-könyvtárat kívánt integrálni, amelyet nem ismertek. Megkérdeztem az AI-t, hogy "hogyan állíthatok be fogyasztót ebben a könyvtárban, hogyan lehet újrapróbálni hiba esetén?" Megkérdezték, és mintát vettek; Aztán összehasonlították a példát a hivatalos dokumentummal, és javítottak egy eltérést (régi verziójú API). A tanulási idő felére csökkent.
Négy másolható sablon
Kódbázis-leképezés:
Az alábbiakban egy projekt könyvtár/fájl listája látható. 1) Bontsa ki az alkalmazás rétegeit (bemenet, üzleti logika, adatelérés stb.). 2) Sorolja fel egy „{{example property}}” kérés lehetséges fájlútját. 3) Jelölje meg azokat a területeket, amelyekben nem biztos, hogy "ellenőrizendő". {{könyvtár_lista}}
Funkció leírása (lépésről lépésre):
Oszd fel ezt a funkciót sorcsoportokra, és magyarázd el tiszta törökül, hogy mit csinálnak az egyes csoportok. Végül: lista bemenet, kimenet, mellékhatások (adatbázis/fájl/hálózat) és lehetséges élesetek. Gyűjtsd össze KÜLÖN "ellenőrizni kell" fejléc alá azokat a viselkedéseket, amelyekben nem vagy biztos.{{function}}
Adatfolyam nyomon követése:
Honnan származik a "{{változó/adat}}" érték, milyen átalakításokon megy keresztül, hova írják? Hozzon létre egy folyamatláncot a kódban található függvénynevek használatával. Kapcsolódó kód: {{code_segments}}
A könyvtár használatának megtanulása:
Szeretnék {{célt}} létrehozni a {{library}} segítségével. Mondjon egy minimális, működő példát. Győződjön meg arról, hogy minden használt függvény valóban ehhez a könyvtárhoz tartozik; ha nem biztos benne, jelölje be az "ellenőrzés a hivatalos dokumentációból" lehetőséget. Verzió: {{version}}.
Gyenge felszólítás / Erős felszólítás
Gyenge: "magyarázza meg ezt a kódot." (Mire vagy kíváncsi? Milyen szinten? Mit fogsz csinálni?)
Erős: "Átveszem ezt a funkciót, és megváltoztatom benne az újrapróbálkozási logikát. Lépésről lépésre fejtse ki a függvényt, főleg hiba esetén, világosan fogalmazza meg, hogy hányszor és milyen időközönként próbálja újra; azokat a részeket, amelyekben nem vagy biztos, jelölje be, hogy "ellenőrizendő". [kód]"
Az erős verzió megadja a szándékot (változtatom az újrapróbálkozás logikáját) és a fókuszt; így a magyarázat nem egy általános összefoglalás, hanem egy hasznos útmutató.
Quest
Az AI jól működik
Mindenképpen ellenőrizze
Általános építészeti összefoglaló
Távolítsa el a rétegeket
Valós hívási sorrend
összetett funkció
Lépésről lépésre magyarázat
Fordított logika, mellékhatások
adatfolyam
A lánc rajzolása
Feltételes ágak, kihagyott utak
Könyvtárhasználat
Mintagenerálás
Az API hitelessége és verziója
Nem helyettesítheti az emberi megértést
Az AI leírása nem helyettesíti a tanulást; felgyorsítja. Egy kódbázis valódi „tulajdonlása” azt jelenti, hogy fel kell építeni egy mentális modellt, és ez a modell csak akkor illeszkedik, ha elolvassa a kódot, apró változtatásokat hajt végre, és látja az eredményt. Használja a mesterséges intelligenciát úgy, ahogy egy mentor azt mondaná: „Nézd ide, ez fontos” – de olvasd el, ahol a saját szemeddel látod.
Tipp: Ha úgy gondolja, hogy megért egy függvényt, kérje meg az AI-t, hogy „összefoglalja egy mondatban”; Ezután hasonlítsa össze a saját mondatával. Ha két mondat ellentmond egymásnak, akkor Ön vagy a modell kihagyott valamit – és ezt kidolgozza a kódban.
Gyakori hibák
- Tekintsük az összefoglalót bizonyítéknak. A kóddal kapcsolatos döntés a leírás ellenőrzése nélkül azt jelenti, hogy a félrevezető nevek csapdájába esünk.
- Túl nagy darabok ragasztása. Egyszerre 2000 sor összegzése felületes és hibalehető eredményeket ad; darabokra osztjuk.
- Célt nem közöl. Ha nem mondja ki, hogy „mit fog tenni”, a leírás általános marad, és nem az Ön vállalkozására összpontosít.
- Nem érvényesíti a könyvtárpéldányt. A modell elavult vagy nem létező API-t hívhat meg; Hasonlítsa össze a hivatalos dokumentummal.
- Minden tanulást feladva. Ha csak absztraktokkal dolgozik anélkül, hogy elolvasná a kódbázist, az első valódi hibánál tehetetlen lesz.
Összefoglalva
A mesterséges intelligencia hatékony útmutató az idegen kódbázisok felfedezésében: leképezi az architektúrát, leegyszerűsíti az összetett funkciókat, nyomon követi az adatáramlást, megtanítja a könyvtárhasználatot. De minden magyarázat hipotézis. Tegye világossá az álláspontját, bontsa fel, és ellenőrizze kódban és tesztelve minden olyan kritikus állítást, amely szerint a modell azt mondja (és nem) "ellenőrizendő". Az útmutató az AI; Te vagy az, aki elolvassa a térképet, és Ön viseli a felelősséget.
Pályázati feladat
Válasszon egy olyan modult, amelyet nem ismer, vagy amelyet most örökölt. Először bontsa ki egy jellemző rétegeit és fájlútját a „kódbázis-leképezés” sablon segítségével. Ezután magyarázza el lépésről lépésre a funkció legkritikusabb funkcióját a „funkció magyarázata” sablonnal. Végül személyesen ellenőrizze a kódban legalább két olyan állítást, amelyeket a modell „ellenőrizendő” jelzéssel jelölt meg, és jegyezze meg, hogy igazak vagy hamisak.
ellenőrző lista
- [ ] Az AI állítást hipotézisként kezelem és kódban igazolom.
- [ ] A kód magyarázata közben hozzáadom a célomat és a fókuszomat a prompthoz.
- [ ] A nagy kódbázist részekre bontva foglalom össze.
- [ ] Online ellenőrzöm a kritikus állításokat, hogy nem tartalmaznak-e félrevezető név/fordított logikai csapdákat.
- [ ] Összehasonlítom a könyvtári példákat a hivatalos dokumentummal és verzióval.
- [ ] Az AI-t útmutatóként használom a tanulás felgyorsítására, nem pedig a tanulás helyettesítésére.