Pelnas:
- Galimybė susieti svetimo kodo pagrindą sluoksniu po sluoksnio naudojant AI ir stebėti funkciją nuo galo iki galo
- Gebėjimas žingsnis po žingsnio paaiškinti sudėtingas funkcijas ir stebėti duomenų srautą
- Galimybė peržiūrėti AI aprašymą kaip hipotezę ir patikrinti svarbius teiginius kode
Kūrėjai skaito kodą, o ne rašo kodą. Kai pradedate naują darbą, perimate kažkieno paliktą paslaugą arba prisidedate prie atvirojo kodo bibliotekos, jūsų pirmoji užduotis yra „kas čia vyksta? yra rasti atsakymą į klausimą. AI gali sutrumpinti šią atradimo užduotį iki kelių valandų, o ne iki savaičių, bet tik tada, kai naudojama su tinkamais klausimais ir patikrinimo refleksu.
Šiame skyriuje mokomės naudoti dirbtinį intelektą kaip „kodo vadovą“: susieti svetimo kodo bazę, išversti sudėtingą funkciją į paprastą kalbą, sekti duomenų srautą ir išsiaiškinti, kaip naudotis biblioteka. Auksinė taisyklė čia yra ta, kad AI paaiškinimas yra hipotezė; tai patvirtinate pačiu kodu.
Kodėl kodo anotacija yra galinga, bet rizikinga?
LLM labai gerai nuskaito kodo fragmentą ir išverčia jį į žmonių kalbą, pvz., „ši funkcija atnaujina vartotojo seanso žetoną“; nes išmoko modelių iš milijonų panašių pavyzdžių. Tai labai sutaupo laiko, ypač naudojant ilgas ir įdėtas funkcijas.
Čia yra rizika: modelis kartais nurodo, ką kodas daro, o ne tai, ką jis iš tikrųjų daro. Jei kintamojo pavadinimas yra isAdmin, bet logika viduje yra atvirkštinė, modelis gali pažvelgti į pavadinimą ir ištraukti neteisingą suvestinę. Todėl prieš darydami teiginį savo kritinių sprendimų pagrindu, turėtumėte vizualiai patikrinti tariamą elgesį atitinkamose eilutėse. Aprašymas nuves jus į reikiamą vietą; Kodas turi paskutinį žodį.
Atsargiai: AI santraukos „šis kodas veikia X“ nelaikykite vien tik įrodymu priimant sprendimą, susijusį su saugumu ar pinigų srautu. Santrauka yra žemėlapis, rodantis, kur ieškoti; Patvirtinimą pateikiate kode.
Užsienio kodų bazės atvaizdavimo veiksmai
- Pradėkite nuo aukščiausio lygio. Pirmiausia susipažinkite su aplanko struktūra ir įvesties taškais (pagrindiniu, programos paleidimu, namų maršrutizatoriumi). Paklauskite AI „kokie yra programos sluoksniai, pagrįsti šia katalogo struktūra? paklausti.
- Stebėkite funkciją nuo galo iki galo. „Kokie failai aktyvuojami ir kokia tvarka vartotojui prisijungus? - stebėti vieną srautą yra labiau pamokanti, nei skaityti visą architektūrą.
- Lokalizuoti terminus. Paklauskite dirbtinio intelekto konkrečiam projektui skirtų sąvokų („nuomininkas“, „lėktuvas“, „darbo vykdytojas“) ir raskite jų atitikmenis kode.
- Supaprastinote sudėtingą funkciją. Žingsnis po žingsnio paaiškinkite ilgą funkciją, tada pažymėkite tuos veiksmus kode.
- Patvirtinti. Atlikite nedidelį pakeitimą ir atlikite testus, kad patikrintumėte savo supratimą; Testas iš karto parodo, ar supratai neteisingai.
Trys mini dėklai
1 atvejis – paveldima paslauga buvo sumažinta nuo 2 dienų iki 3 valandų. Kūrėjas perėmė 4 000 eilučių mokėjimų derinimo paslaugą iš išvykstančio kolegos. Turėjo AI apibendrinti modulius ir stebėti mokėjimo srautą nuo galo iki galo; Jis asmeniškai patikrino dvi svarbias kodo funkcijas. Atradimas, kuris, kaip apskaičiuota, truko 2 dienas klasikiniu „akluoju skaitymu“, buvo atliktas maždaug per 3 valandas, naudojant patikrintą AI metodą.
2 atvejis – klaidinančių vardų spąstai. Viena funkcija buvo pavadinta validateAndSave, tačiau AI santraukoje buvo nurodyta „pirma patvirtina, tada išsaugo“. Kai kūrėjas įsitraukė į kodą, jis pamatė, kad išsaugojimas buvo atliktas prieš patikrinimą, o patvirtinimas rašė tik į žurnalą. Tai buvo tikroji pagrindinė gamybinės klaidos priežastis. Jei kode nebuvo patvirtinimo, klaidinga suvestinė paslėptų klaidą.
3 atvejis – paspartintas naujos bibliotekos mokymasis. Komanda ketino integruoti jiems nepažįstamą pranešimų eilės biblioteką. Aš paklausiau AI "kaip nustatyti vartotoją šioje bibliotekoje, kaip bandyti iš naujo, jei įvyktų klaida?" Jie paklausė ir davė pavyzdį; Tada jie palygino pavyzdį su oficialiu dokumentu ir ištaisė skirtumą (senos versijos API). Mokymosi laikas sutrumpintas per pusę.
Keturi kopijuojami šablonai
Kodo bazės atvaizdavimas:
Žemiau yra projekto katalogų / failų sąrašas. 1) Išskleiskite programos sluoksnius (įvestis, verslo logika, prieiga prie duomenų ir kt.). 2) Išvardykite galimą „{{example property}}“ užklausos failo kelią. 3) Pažymėkite sritis, kuriose nesate tikri, kaip „būtina patikrinti“. {{directory_list}}
Funkcijos aprašymas (žingsnis po žingsnio):
Padalinkite šią funkciją į eilučių grupes ir paprasta turkų kalba paaiškinkite, ką kiekviena grupė veikia. Galiausiai: išvardykite įvestį, išvestį, šalutinį poveikį (duomenų bazė / failas / tinklas) ir galimus kraštutinius atvejus. Surinkite veiksmus, dėl kurių nesate tikri, ATSKIRJE antraštėje „būtina patikrinti“.{{function}}
Duomenų srauto stebėjimas:
Iš kur atsiranda reikšmė „{{kintamasis/duomenys}}“, kokias transformacijas ji patiria, kur rašoma? Sukurkite srauto grandinę naudodami funkcijų pavadinimus kode. Susijęs kodas: {{code_segments}}
Išmokti naudotis biblioteka:
Noriu sukurti {{purpose}} su {{biblioteka}}. Pateikite minimalų, veikiantį pavyzdį. Įsitikinkite, kad kiekviena jūsų naudojama funkcija iš tikrųjų priklauso šiai bibliotekai; jei nesate tikri, pažymėkite "patikrinti iš oficialių dokumentų". Versija: {{version}}.
Silpnas raginimas / Stiprus raginimas
Silpnas: „Paaiškinkite šį kodą“. (Kas tau įdomu? Kokiu lygiu? Ką darysi?)
Stiprus: "Perimu šią funkciją ir joje pakeisiu pakartotinio bandymo logiką. Žingsnis po žingsnio paaiškinkite funkciją, ypač klaidos atveju, aiškiai nurodykite, kiek kartų ir kokiu intervalu bandote pakartoti; dalis, dėl kurių nesate tikri, pažymėkite kaip "būtina patikrinti". [kodas]"
Stiprioji versija suteikia jūsų ketinimą (pakeisiu pakartotinio bandymo logiką) ir fokusą; kad paaiškinimas būtų ne bendra santrauka, o naudingas vadovas.
Quest
AI veikia gerai
Būtinai patikrinkite
Bendra architektūros santrauka
Pašalinkite sluoksnius
Faktinė skambučių seka
sudėtinga funkcija
Žingsnis po žingsnio paaiškinimas
Atvirkštinė logika, šalutinis poveikis
duomenų srautas
Grandinės brėžinys
Sąlyginės šakos, praleisti takai
Naudojimasis biblioteka
Mėginio generavimas
API autentiškumas ir versija
Jokio žmogaus supratimo pakaitalo
AI aprašymas nėra mokymosi pakaitalas; tai pagreitina. Iš tikrųjų „turėti“ kodų bazę reiškia sukurti jos psichikos modelį, o šis modelis tinka tik tada, kai skaitote kodą, atliekate nedidelius pakeitimus ir matote rezultatą. Naudokite dirbtinį intelektą taip, kaip mentorius jums pasakytų: „žiūrėk čia, tai svarbu“, bet skaitykite, kur tai matote savo akimis.
Patarimas: kai manote, kad suprantate funkciją, paprašykite AI „apibendrinti ją vienu sakiniu“; Tada palyginkite jį su savo sakiniu. Jei du sakiniai prieštarauja vienas kitam, jūs arba modelis kažką praleidote – ir jūs tai suprantate kode.
Dažnos klaidos
- Laikykite santrauką kaip įrodymą. Priimti sprendimą dėl kodo nepatikrinus aprašymo reiškia patekti į klaidinančių pavadinimų pinkles.
- Per didelių gabalų klijavimas. Susumavus 2000 eilučių iš karto gaunami paviršutiniški ir klaidų tikimybė; padalinti į dalis.
- Tikslo nenurodo. Jei nepasakysite „ką darysi“, aprašymas lieka bendras ir nesusijęs su jūsų verslu.
- Nepatvirtina bibliotekos egzemplioriaus. Modelis gali iškviesti pasenusią arba neegzistuojančią API; Palyginkite su oficialiu dokumentu.
- Atiduoti visą mokymąsi. Dirbant tik su santraukomis, niekada neskaitant kodo bazės, padarysite bejėgį po pirmos tikros klaidos.
Apibendrinant
AI yra galingas vadovas tyrinėjant svetimą kodų bazę: atvaizduoja architektūrą, supaprastina sudėtingas funkcijas, seka duomenų srautą, moko naudotis biblioteka. Bet kiekvienas paaiškinimas yra hipotezė. Aiškiai pasakykite savo mintį, suskaidykite ją ir patikrinkite kode bei išbandydami kiekvieną kritinį teiginį, kad modelis sako (ir ne) „turi būti patikrintas“. Vadovas yra AI; Jūs esate tas, kuris skaito žemėlapį ir prisiimate atsakomybę.
Taikymo užduotis
Pasirinkite modulį, kurio nesate susipažinę arba ką tik paveldėjote. Pirmiausia išskleiskite funkcijos sluoksnius ir failo kelionę naudodami „kodo bazės susiejimo“ šabloną. Tada su „funkcijos paaiškinimo“ šablonu žingsnis po žingsnio paaiškinkite svarbiausią šios funkcijos funkciją. Galiausiai, asmeniškai patikrinkite kode bent du tvirtinimus, kad modelis pažymėtas kaip „būtina patikrinti“, ir atkreipkite dėmesį, ar jie teisingi, ar klaidingi.
kontrolinis sąrašas
- [ ] AI teiginį traktuoju kaip hipotezę ir patikrinu ją kodu.
- [ ] Aiškindamas kodą pridedu savo tikslą ir dėmesį į raginimą.
- [ ] Apibendrinu didelę kodo bazę, padalijus ją į dalis.
- [ ] Tikrinu kritinius teiginius internete, ar nėra klaidinančių pavadinimo / atvirkštinės logikos spąstų.
- [ ] Lyginu bibliotekos pavyzdžius su oficialiu dokumentu ir versija.
- [ ] DI naudoju kaip mokymosi paspartinimo vadovą, o ne kaip mokymosi pakaitalą.