Dobički:
- Zmožnost preslikave tuje osnovne kode plast za plastjo z AI in sledenje funkciji od konca do konca
- Sposobnost razlage kompleksnih funkcij korak za korakom in spremljanja pretoka podatkov
- Sposobnost ogleda opisa AI kot hipoteze in preverjanja kritičnih trditev v kodi
Razvijalci raje berejo kodo kot pišejo kodo. Ko začnete novo službo, prevzamete storitev, ki jo je zapustil nekdo drug, ali prispevate k odprtokodni knjižnici, je vaša prva naloga "kaj se tukaj dogaja?" je najti odgovor na vprašanje. Umetna inteligenca lahko to nalogo odkrivanja zmanjša na ure in ne na tedne – vendar le, če se uporablja s pravimi vprašanji in refleksom preverjanja.
V tej enoti se naučimo uporabljati AI kot »vodnik po kodi«: preslikava tuje kodne baze, prevajanje kompleksne funkcije v navaden jezik, sledenje pretoku podatkov in ugotavljanje, kako uporabljati knjižnico. Zlato pravilo tukaj je, da je razlaga AI hipoteza; preverite s samo kodo.
Zakaj je opomba kode močna, a tvegana?
LLM je zelo dober pri branju dela kode in njegovem prevajanju v človeški jezik, na primer "ta funkcija osveži uporabniški žeton seje"; ker se je vzorcev naučil iz milijonov podobnih primerov. To je velik prihranek časa, zlasti z dolgimi in ugnezdenimi funkcijami.
Tukaj je tveganje: model včasih pove, kaj koda navidez počne, ne pa, kaj dejansko počne. Če je ime spremenljivke isAdmin, vendar je notranja logika obratna, lahko model pogleda ime in izvleče napačen povzetek. Zato morate, preden izjavo postavite kot osnovo za svoje kritične odločitve, vizualno preveriti domnevno vedenje v ustreznih vrsticah. Opis vas pripelje na pravo mesto; Koda ima zadnjo besedo.
Pozor: ne štejte AI-jevega povzetka "ta koda dela X" samo kot dokaz pri odločitvi, ki vključuje varnost ali pretok denarja. Povzetek je zemljevid, ki prikazuje, kje iskati; Potrditev podate v kodi.
Koraki za preslikavo tuje kodne baze
- Začnite na najvišji ravni. Najprej se seznanite s strukturo map in vstopnimi točkami (glavna, zagon aplikacije, domači usmerjevalnik). Vprašajte AI "katere so plasti aplikacije, ki temeljijo na tej strukturi imenika?" vprašaj.
- Sledite funkciji od konca do konca. "Katere datoteke se aktivirajo in v kakšnem vrstnem redu, ko se uporabnik prijavi?" — opazovanje posameznega toka je bolj poučno kot branje celotne arhitekture.
- Lokalizirajte izraze. Vprašajte AI za koncepte, specifične za projekt (»najemnik«, »knjiga«, »tekovalec opravil«) in poiščite njihove enakovrednosti v kodi.
- Poenostavili ste kompleksno funkcijo. Dolgo funkcijo razložite korak za korakom, nato označite te korake v kodi.
- Preveri. Naredite majhno spremembo in zaženite teste, da preverite svoje razumevanje; Test vam takoj pove, če je vaše razumevanje napačno.
Trije mini kovčki
Primer 1 — Podedovana storitev se je skrajšala z 2 dni na 3 ure. Razvijalec je od odhajajočega kolega prevzel storitev usklajevanja plačil s 4000 vrsticami. Umetna inteligenca je povzela module in sledila plačilnemu toku od konca do konca; Osebno je preveril dve kritični funkciji v kodi. Odkritje, ki naj bi s klasičnim "slepim branjem" trajalo 2 dni, je bilo s preverjeno AI metodo končano v približno 3 urah.
2. primer – past za zavajajoče ime. Ena funkcija se je imenovala validateAndSave, vendar je povzetek AI rekel "najprej potrdi, nato shrani". Ko je razvijalec šel v kodo, je videl, da je bilo shranjevanje izvedeno pred preverjanjem, preverjanje pa je samo pisalo v dnevnik. To je bil dejanski vzrok napake v produkciji. Če v kodi ni bilo potrditve, bi napačni povzetek skril napako.
Primer 3 – Pospešeno učenje nove knjižnice. Ekipa je nameravala integrirati knjižnico čakalne vrste sporočil, ki je niso poznali. Vprašal sem AI, "kako nastaviti potrošnika v tej knjižnici, kako poskusiti znova v primeru napake?" Vprašali so in dali izdelati vzorec; Nato so primer primerjali z uradnim dokumentom in popravili razliko (stara različica API-ja). Čas učenja se prepolovi.
Štiri kopirane predloge
Preslikava kodne baze:
Spodaj je seznam imenikov/datotek projekta. 1) Ekstrahirajte plasti aplikacije (vnos, poslovna logika, dostop do podatkov itd.). 2) Navedite možno potovanje datoteke za zahtevo »{{example property}}«. 3) Označite področja, za katera niste prepričani, kot "treba preveriti". {{directory_list}}
Opis funkcije (korak za korakom):
Razdelite to funkcijo v skupine vrstic in v preprostem turškem jeziku razložite, kaj počne vsaka skupina. Končno: seznam vnosa, izhoda, stranskih učinkov (baza podatkov/datoteka/omrežje) in možni robni primeri. Zberite vedenja, o katerih niste prepričani, pod LOČENIm naslovom »mora biti preverjeno«.{{function}}
Sledenje pretoku podatkov:
Od kod izvira vrednost "{{variable/data}}", skozi kakšne transformacije gre, kje je zapisana? Ustvarite verigo toka z uporabo imen funkcij v kodi. Sorodna koda: {{code_segments}}
Naučite se uporabljati knjižnico:
Želim narediti {{purpose}} s {{library}}. Navedite minimalen delujoč primer. Prepričajte se, da vsaka funkcija, ki jo uporabljate, dejansko pripada tej knjižnici; če niste prepričani, označite "preveri iz uradne dokumentacije". Različica: {{version}}.
Šibek poziv/močan poziv
Slabo: "Razloži to kodo." (Kaj se sprašujete? Na kateri ravni? Kaj boste naredili?)
Strong: "Prevzemam to funkcijo in v njej bom spremenil logiko ponovnega poskusa. Funkcijo razložite korak za korakom, še posebej v primeru napake, jasno navedite, kolikokrat in v kakšnem intervalu poskusite znova; dele, o katerih niste prepričani, označite kot 'mora biti preverjeno'. [koda]"
Močna različica podaja vaš namen (spremenil bom logiko ponovnega poskusa) in fokus; tako da razlaga ni splošen povzetek, temveč koristen vodnik.
Iskanje
AI se dobro obnese
Bodite prepričani, da preverite
Splošni povzetek arhitekture
Odstranite plasti
Dejansko zaporedje klicev
kompleksna funkcija
Razlaga po korakih
Obratna logika, stranski učinki
tok podatkov
Oblikovanje verige
Pogojne veje, preskočene poti
Uporaba knjižnice
Generiranje vzorca
Pristnost in različica API-ja
Ni nadomestila za človeško razumevanje
Opis AI ni nadomestilo za učenje; ga pospeši. Resnično »imeti« kodno zbirko pomeni zgraditi njen miselni model in ta model se prilega le, ko berete kodo, naredite majhne spremembe in vidite rezultat. Uporabite umetno inteligenco, kot bi vam mentor rekel "poglejte sem, to je pomembno" - vendar berite tam, kjer to vidite na lastne oči.
Namig: Ko mislite, da razumete funkcijo, prosite AI, naj jo "povzame v enem stavku"; Nato ga primerjajte s svojim stavkom. Če si dva stavka nasprotujeta, ste vi ali model nekaj spregledali — in to odpravite v kodi.
Pogoste napake
- Upoštevajte povzetek kot dokaz. Odločitev o kodi brez preverjanja opisa pomeni ujeti se v past zavajajočih imen.
- Lepljenje prevelikih kosov. Povzemanje 2000 vrstic naenkrat daje površne rezultate, ki so nagnjeni k napakam; razdeli na kose.
- Brez navedbe namena. Če ne rečete "kaj boste počeli", ostane opis splošen in se ne osredotoča na vaše podjetje.
- Ne preverjam primerka knjižnice. Model lahko kliče zastarel ali neobstoječ API; Primerjaj z uradnim dokumentom.
- Oddajanje vsega učenja. Delo samo z izvlečki, ne da bi sploh prebrali kodno osnovo, vas pusti nemočne ob prvi resni napaki.
Če povzamem
Umetna inteligenca je močan vodnik pri raziskovanju tuje kodne baze: preslikava arhitekturo, poenostavlja kompleksne funkcije, sledi pretoku podatkov, uči uporabe knjižnice. Toda vsaka razlaga je hipoteza. Jasno izrazite svoje stališče, razčlenite ga in preverite v kodi ter testirajte vsako kritično trditev, za katero model pravi (in ne) da jo je treba preveriti. Vodnik je AI; Vi ste tisti, ki berete zemljevid in nosite odgovornost.
Aplikacijska naloga
Izberite modul, ki ga ne poznate ali ste ga pravkar podedovali. Najprej izvlecite sloje in potovanje datoteke funkcije s predlogo »preslikava osnovne kode«. Nato naj vam najbolj kritično funkcijo te funkcije razložite korak za korakom s predlogo "razlaga funkcije". Nazadnje osebno preverite v kodi vsaj dve trditvi, ki ju je model označil kot »treba preveriti«, in zabeležite, ali sta resnični ali napačni.
kontrolni seznam
- [ ] Izjavo AI obravnavam kot hipotezo in jo preverim v kodi.
- [ ] Med razlago kode pozivu dodam svoj namen in fokus.
- [ ] Veliko bazo kode povzemam tako, da jo razdelim na dele.
- [ ] Preverjam kritične trditve na spletu glede zavajajočih imen/obrnjenih logičnih pasti.
- [ ] Primere knjižnic primerjam z uradnim dokumentom in različico.
- [ ] Umetno inteligenco uporabljam kot vodnik za pospešitev učenja, ne kot nadomestek za učenje.