Kasu:
- Võimalus kaardistada AI abil kihtide kaupa võõra koodi baasi ja jälgida funktsiooni otsast lõpuni
- Oskus samm-sammult seletada keerulisi funktsioone ja jälgida andmevoogu
- Võimalus vaadelda AI kirjeldust hüpoteesina ja kontrollida kriitilisi väiteid koodis
Arendajad loevad koodi, mitte ei kirjuta koodi. Kui alustate uut tööd, võtate üle kellegi teise jäetud teenuse või panustate avatud lähtekoodiga teeki, on teie esimene ülesanne "mis siin toimub?" on küsimusele vastuse leidmine. Tehisintellekt võib selle avastamisülesande lühendada tundide, mitte nädalate võrra – kuid ainult siis, kui seda kasutatakse õigete küsimuste ja kontrollirefleksiga.
Selles üksuses õpime kasutama tehisintellekti nagu "koodijuhist": võõra koodibaasi kaardistamist, keeruka funktsiooni tõlkimist lihtsasse keelde, andmevoo jälgimist ja teeki kasutamise nuputamist. Siin kehtib kuldreegel, et tehisintellekti seletus on hüpotees; kinnitate selle koodi endaga.
Miks on koodiannotatsioon võimas, kuid riskantne?
LLM oskab väga hästi lugeda koodijuppi ja tõlkida see inimkeelde, näiteks "see funktsioon värskendab kasutaja seansimärki"; sest ta on õppinud mustreid miljonitest sarnastest näidetest. See on tohutu aja kokkuhoid, eriti pikkade ja pesastatud funktsioonide puhul.
Siin on oht: mudel ütleb mõnikord seda, mida kood näib tegevat, mitte seda, mida see tegelikult teeb. Kui muutuja nimi on isAdmin, kuid sees olev loogika on vastupidine, võib mudel nime vaadata ja vale kokkuvõtte välja võtta. Seetõttu peaksite enne väite oma kriitiliste otsuste aluseks võtmist visuaalselt kontrollima väidetavat käitumist asjakohastel ridadel. Kirjeldus viib teid õigesse kohta; Koodil on viimane sõna.
Ettevaatust. Ärge arvestage tehisintellekti "see kood teeb X" kokkuvõtet kui tõendit turvalisuse või rahavoogu puudutava otsuse tegemisel. Kokkuvõte on kaart, mis näitab, kust otsida; Kinnituse annad koodis.
Võõrkoodibaasi kaardistamise sammud
- Alustage tipptasemelt. Kõigepealt tutvuge kaustastruktuuri ja sisestuspunktidega (peamine, rakenduse käivitamine, koduruuter). Küsige AI-lt "millised on sellel kataloogistruktuuril põhinevad rakenduse kihid?" küsi.
- Jälgige funktsiooni otsast lõpuni. "Millised failid aktiveeritakse ja mis järjekorras kasutaja sisselogimisel?" — ühe voolu vaatamine on õpetlikum kui kogu arhitektuuri lugemine.
- Terminite lokaliseerimine. Küsige tehisintellekti projektispetsiifilisi mõisteid ("üürnik", "pearaamat", "tööjooksja") ja leidke koodist nende ekvivalendid.
- Lihtsustasite keerukat funktsiooni. Laske pikka funktsiooni samm-sammult selgitada ja seejärel märkige need sammud koodis.
- Kinnitage. Tehke väike muudatus ja käivitage oma arusaamise kontrollimiseks teste; Test ütleb teile kohe, kui teie arusaam on vale.
Kolm miniümbrist
Juhtum 1 – päritud teenust vähendati kahelt päevalt 3 tunnini. Arendaja võttis lahkuvalt kolleegilt üle 4000 rea maksete kooskõlastusteenuse. Kas tehisintellekt koostas moodulitest kokkuvõtte ja jälgis maksevoogu otsast lõpuni; Ta kontrollis isiklikult koodi kahte kriitilist funktsiooni. Avastus, milleks kulus klassikalise "pimelugemisega" hinnanguliselt 2 päeva, viidi kontrollitud tehisintellekti meetodil lõpule ligikaudu 3 tunniga.
2. juhtum – eksitav nimelõks. Üks funktsioon kandis nime validateAndSave, kuid tehisintellekti kokkuvõte ütles "kõigepealt kinnitab, seejärel salvestab". Kui arendaja koodi sisse läks, nägi ta, et salvestamine tehti enne kontrollimist ja kinnitamine kirjutas ainult logisse. See oli tootmises esineva veapileti tegelik algpõhjus. Kui koodis pole kinnitust, peidab vale kokkuvõte vea.
Juhtum 3 – uue raamatukogu õppimine kiirenes. Meeskond kavatses integreerida sõnumite järjekorra teegi, mida nad ei tundnud. Küsisin AI-st "kuidas selles teegis tarbijat seadistada, kuidas vea korral uuesti proovida?" Nad küsisid ja lasid valmistada proovi; Seejärel võrdlesid nad näidet ametliku dokumendiga ja parandasid erinevuse (vana versiooni API). Õppeaeg poole võrra vähenenud.
Neli kopeeritavat malli
Koodibaasi kaardistamine:
Allpool on projekti kataloogide/failide loend. 1) Ekstraheerige rakenduse kihid (sisend, äriloogika, juurdepääs andmetele jne). 2) Loetlege päringu „{{example property}}” võimalik failiteekond. 3) Märkige alad, milles te pole kindel, kui "tuleb kontrollida". {{kataloogi_loend}}
Funktsiooni kirjeldus (samm-sammult):
Jagage see funktsioon ridarühmadesse ja selgitage lihtsas türgi keeles, mida iga rühm teeb. Lõpuks: loend sisend, väljund, kõrvalmõjud (andmebaas/fail/võrk) ja võimalikud servajuhtumid. Koguge käitumisviisid, milles te pole kindel, ERALDI päise "kinnitada tuleb" alla.{{function}}
Andmevoo jälgimine:
Kust tuleb väärtus "{{muutuja/andmed}}", milliseid teisendusi see läbib, kuhu kirjutatakse? Looge vooahel, kasutades koodis olevate funktsioonide nimesid. Seotud kood: {{code_segments}}
Õppige raamatukogu kasutama:
Ma tahan teha {{eesmärk}} rakendusega {{library}}. Tooge minimaalne toimiv näide. Veenduge, et kõik teie kasutatavad funktsioonid kuuluvad sellesse teeki; kui te pole kindel, tehke linnuke "kontrolli ametlikust dokumentatsioonist". Versioon: {{version}}.
Nõrk viip / Tugev viip
Nõrk: "Selgitage seda koodi." (Mida sa mõtled? Mis tasemel? Mida sa teed?)
Tugev: "Võtan selle funktsiooni üle ja muudan selles uuesti proovimise loogikat. Selgitage funktsioon samm-sammult, eriti vea korral, öelge selgelt mitu korda ja mis intervalliga uuesti proovite; need osad, milles te pole kindel, märkige "tuleb kontrollida". [kood]"
Tugev versioon annab teie kavatsuse (ma muudan uuesti proovimise loogikat) ja keskendub; nii et selgitus ei oleks üldine kokkuvõte, vaid kasulik juhend.
Quest
AI-l läheb hästi
Kontrollige kindlasti
Üldine arhitektuuri kokkuvõte
Eemaldage kihid
Tegelik kõnede jada
keeruline funktsioon
Samm-sammult selgitus
Vastupidine loogika, kõrvalmõjud
andmevoog
Keti koostamine
Tingimuslikud oksad, vahele jäetud teed
Raamatukogu kasutamine
Proovi genereerimine
API autentsus ja versioon
Inimmõistmist ei asenda
AI kirjeldus ei asenda õppimist; see kiirendab. Koodibaasi tõeline omamine tähendab selle vaimse mudeli loomist ja see mudel sobib ainult siis, kui loete koodi, teete väikseid muudatusi ja näete tulemust. Kasutage tehisintellekti nii, nagu mentor ütleks teile: "vaata siia, see on oluline" – aga lugege, kus seda oma silmaga näete.
Näpunäide: kui arvate, et mõistate funktsiooni, paluge tehisintellektil see "ühe lausega kokku võtta"; Seejärel võrrelge seda oma lausega. Kui kaks lauset on üksteisega vastuolus, jäi teil või mudelil midagi kahe silma vahele – ja te töötate selle koodis välja.
Levinud vead
- Võtke kokkuvõtet tõendina. Koodi kohta otsuse tegemine ilma kirjeldust kontrollimata tähendab eksitavate nimede lõksu sattumist.
- Liiga suurte tükkide liimimine. Korraga 2000 rea kokkuvõtte tegemine annab pealiskaudsed ja veaohtlikud tulemused; jagada tükkideks.
- Eesmärki ei mainita. Kui te ei ütle "mida teete", jääb kirjeldus üldiseks ega keskendu teie ettevõttele.
- Teegi eksemplari ei valideerita. Mudel võib kutsuda vananenud või olematut API-d; Võrrelge ametliku dokumendiga.
- Andes kogu õppimise ära. Kui töötate ainult kokkuvõtetega, ilma koodibaasi lugemata, jääte esimese tõelise vea korral abituks.
Kokkuvõttes
AI on võimas juhend võõra koodibaasi uurimisel: kaardistab arhitektuuri, lihtsustab keerulisi funktsioone, jälgib andmevoogu, õpetab raamatukogu kasutama. Kuid iga seletus on hüpotees. Tehke oma seisukoht selgeks, lõigake see lahti ja kontrollige koodis ja testides iga kriitilist väidet, et mudel ütleb (ja ei ütle) "tuleb kontrollida". Juhend on AI; Sina oled see, kes loeb kaarti ja kannab vastutust.
Rakenduse ülesanne
Valige moodul, mida te ei tunne või mille olete just pärinud. Esmalt eraldage funktsiooni kihid ja failiteekond "koodibaasi vastendamise" malli abil. Seejärel selgitage selle funktsiooni kõige kriitilisemat funktsiooni samm-sammult "funktsiooni selgituse" malli abil. Lõpuks kontrollige koodis isiklikult vähemalt kahte väidet, mille kohta mudel on märgitud kui "tuleb kontrollida", ja märkige, kas need on tõesed või valed.
kontrollnimekiri
- [ ] Käsitlen tehisintellekti väidet hüpoteesina ja kontrollin seda koodis.
- [ ] Koodi selgitades lisan viipale oma eesmärgi ja fookuse.
- [ ] Võtan suure koodibaasi kokku, jagades selle osadeks.
- [ ] Kontrollin veebis kriitilisi väiteid eksitavate nimede/pöördloogika lõksude suhtes.
- [ ] Võrdlen raamatukogu näiteid ametliku dokumendi ja versiooniga.
- [ ] Kasutan tehisintellekti õppimise kiirendamiseks juhendina, mitte õppimise asendajana.