Ieguvumi:
- Iespēja kartēt ārzemju koda bāzes slāni pa slānim, izmantojot AI, un izsekot funkciju no gala līdz galam
- Spēja soli pa solim izskaidrot sarežģītas funkcijas un uzraudzīt datu plūsmu
- Spēja aplūkot AI aprakstu kā hipotēzi un pārbaudīt kritiskās prasības kodā
Izstrādātāji lasa kodu, nevis raksta kodu. Kad sākat jaunu darbu, pārņemat pakalpojumu, ko atstājis kāds cits, vai sniedzat ieguldījumu atvērtā pirmkoda bibliotēkā, jūsu pirmais uzdevums ir "kas šeit notiek?" ir rast atbildi uz jautājumu. AI var saīsināt šo atklāšanas uzdevumu līdz stundām, nevis nedēļām, taču tikai tad, ja to izmanto ar pareiziem jautājumiem un pārbaudes refleksu.
Šajā nodaļā mēs mācāmies lietot mākslīgo intelektu kā “koda ceļvedi”: kartējot svešu kodu bāzi, tulkojot sarežģītu funkciju vienkāršā valodā, sekojot datu plūsmai un izdomājot, kā izmantot bibliotēku. Zelta likums šeit ir tāds, ka AI skaidrojums ir hipotēze; jūs to verificējat ar pašu kodu.
Kāpēc koda anotācija ir spēcīga, bet riskanta?
LLM ļoti labi spēj nolasīt koda fragmentu un tulkot to cilvēku valodā, piemēram, "šī funkcija atsvaidzina lietotāja sesijas pilnvaru"; jo tā ir iemācījusies modeļus no miljoniem līdzīgu piemēru. Tas ir milzīgs laika ietaupījums, īpaši ar garām un ligzdotām funkcijām.
Šeit ir risks: modelis dažreiz norāda, ko kods, šķiet, dara, nevis to, ko tas patiesībā dara. Ja mainīgā nosaukums ir isAdmin, bet iekšpusē esošā loģika ir apgriezta, modelis var aplūkot nosaukumu un iegūt nepareizu kopsavilkumu. Tāpēc, pirms padarīt paziņojumu par pamatu jūsu kritiskajiem lēmumiem, jums vizuāli jāpārbauda iespējamā uzvedība attiecīgajās rindās. Apraksts aizvedīs uz pareizo vietu; Kodam ir pēdējais vārds.
Uzmanību: AI kopsavilkumu “šis kods dara X” neuzskatiet tikai par pierādījumu lēmumā, kas saistīts ar drošību vai naudas plūsmu. Kopsavilkums ir karte, kas parāda, kur meklēt; Apstiprinājumu sniedzat kodā.
Darbības, lai kartētu ārzemju kodu bāzi
- Sāciet ar augstāko līmeni. Vispirms iepazīstieties ar mapju struktūru un ieejas punktiem (galveno, lietojumprogrammu palaišanu, mājas maršrutētāju). Jautājiet AI "kādi ir lietojumprogrammas slāņi, kuru pamatā ir šī direktoriju struktūra?" jautāt.
- Izsekojiet funkciju līdz galam. "Kādi faili tiek aktivizēti un kādā secībā, kad lietotājs piesakās?" — skatīties vienu plūsmu ir pamācošāk nekā lasīt visu arhitektūru.
- Lokalizēt terminus. Jautājiet AI par projekta specifiskiem jēdzieniem ("īrnieks", "virsgrāmata", "darba vadītājs") un atrodiet to ekvivalentus kodā.
- Jūs vienkāršojāt sarežģīto funkciju. Soli pa solim paskaidrojiet garu funkciju, pēc tam atzīmējiet šīs darbības kodā.
- Pārbaudīt. Veiciet nelielas izmaiņas un veiciet testus, lai pārbaudītu savu izpratni; Pārbaude uzreiz parāda, vai jūsu izpratne ir nepareiza.
Trīs mini futrāļi
1. gadījums — mantotais pakalpojums tika samazināts no 2 dienām līdz 3 stundām. Izstrādātājs no aizejoša kolēģa pārņēma 4000 rindu maksājumu saskaņošanas pakalpojumu. Bija AI apkopojis moduļus un izsekojis maksājumu plūsmu no gala līdz galam; Viņš personīgi pārbaudīja divas kodā svarīgas funkcijas. Atklājums, kas tika lēsts, prasīja 2 dienas ar klasisko "aklo lasīšanu", tika pabeigts aptuveni 3 stundās ar pārbaudīto AI metodi.
2. gadījums — maldinoša vārda slazds. Viena funkcija tika saukta par validateAndSave, bet AI kopsavilkumā bija teikts: "vispirms apstiprina, pēc tam saglabā". Kad izstrādātājs iedziļinājās kodā, viņš redzēja, ka saglabāšana tika veikta pirms verifikācijas, un verifikācija rakstīja tikai žurnālā. Tas bija faktiskais kļūdu biļetes cēlonis ražošanā. Ja kodā nebūtu validācijas, kļūdainais kopsavilkums slēptu kļūdu.
3. gadījums — paātrināta jaunas bibliotēkas apguve. Komanda plānoja integrēt ziņojumu rindas bibliotēku, kas viņiem nebija pazīstama. Es jautāju AI "kā iestatīt patērētāju šajā bibliotēkā, kā mēģināt vēlreiz kļūdas gadījumā?" Viņi jautāja un lika izgatavot paraugu; Pēc tam viņi salīdzināja piemēru ar oficiālo dokumentu un laboja atšķirību (vecās versijas API). Mācību laiks samazināts uz pusi.
Četras kopējamas veidnes
Kodu bāzes kartēšana:
Zemāk ir projekta direktoriju/failu saraksts. 1) Izvelciet lietojumprogrammas slāņus (ievade, biznesa loģika, piekļuve datiem utt.). 2) Norādiet pieprasījuma “{{example property}}” iespējamo faila ceļu. 3) Atzīmējiet apgabalus, par kuriem neesat pārliecināts, kā "jāpārbauda". {{directory_list}}
Funkcijas apraksts (soli pa solim):
Sadaliet šo funkciju rindu grupās un vienkāršā turku valodā paskaidrojiet, ko katra grupa dara. Visbeidzot: uzskaitiet ievadi, izvadi, blakusparādības (datu bāze/fails/tīkls) un iespējamie malu gadījumi. Apkopojiet darbības, par kurām neesat pārliecināts, ATSEVIŠĶĀ virsrakstā "jāpārbauda".{{funkcija}}
Datu plūsmas izsekošana:
No kurienes nāk vērtība "{{mainīgais/dati}}", kādām transformācijām tā iziet, kur tā ir rakstīta? Izveidojiet plūsmas ķēdi, izmantojot funkciju nosaukumus kodā. Saistītais kods: {{code_segments}}
Uzziniet, kā izmantot bibliotēku:
Es vēlos izveidot {{purpose}} ar {{library}}. Sniedziet minimālu, darbīgu piemēru. Pārliecinieties, vai katra jūsu izmantotā funkcija patiešām pieder šai bibliotēkai; ja neesat pārliecināts, atzīmējiet "pārbaudīt no oficiālās dokumentācijas". Versija: {{version}}.
Vāja uzvedne / spēcīga uzvedne
Vājš: "Izskaidrojiet šo kodu." (Par ko jūs interesē? Kādā līmenī? Ko jūs darīsit?)
Strong: "Es pārņemu šo funkciju un mainīšu tajā atkārtošanas loģiku. Soli pa solim izskaidrojiet funkciju, it īpaši kļūdas gadījumā, skaidri norādiet, cik reizes un ar kādu intervālu mēģināt atkārtoti; daļas, par kurām neesat pārliecināts, atzīmējiet kā "jāpārbauda". [kods]"
Spēcīgā versija sniedz jūsu nodomu (es mainīšu atkārtotā mēģinājuma loģiku) un fokusu; lai skaidrojums nebūtu vispārīgs kopsavilkums, bet gan noderīgs ceļvedis.
Meklējumi
AI klājas labi
Noteikti pārbaudiet
Vispārējs arhitektūras kopsavilkums
Noņemiet slāņus
Faktiskā zvanu secība
sarežģīta funkcija
Soli pa solim skaidrojums
Apgrieztā loģika, blakusparādības
datu plūsma
Ķēdes noformēšana
Nosacīti zari, izlaisti ceļi
Bibliotēkas lietošana
Paraugu ģenerēšana
API autentiskums un versija
Cilvēcisko izpratni neaizstāj
AI apraksts neaizstāj mācīšanos; tas to paātrina. Lai patiesi “piederētu” kodu bāzei, tas nozīmē izveidot tās garīgo modeli, un šis modelis der tikai tad, kad lasāt kodu, veicat nelielas izmaiņas un redzat rezultātu. Izmantojiet mākslīgo intelektu tā, it kā mentors jums teiktu: “skaties šeit, tas ir svarīgi”, taču lasiet, kur to redzat savām acīm.
Padoms. Ja domājat, ka saprotat kādu funkciju, palūdziet AI “apkopot to vienā teikumā”; Pēc tam salīdziniet to ar savu teikumu. Ja divi teikumi ir pretrunā viens otram, jūs vai modelis kaut ko palaidāt garām — un jūs to izdomājat kodā.
Biežas kļūdas
- Apsveriet kopsavilkumu kā pierādījumu. Lēmuma pieņemšana par kodu, nepārbaudot aprakstu, nozīmē iekrist maldinošu nosaukumu lamatās.
- Pārāk lielu gabalu līmēšana. Apkopojot 2000 rindiņas uzreiz, tiek iegūti virspusēji un kļūdaini rezultāti; sadalīt gabalos.
- Nav norādīts mērķis. Ja nepasakāt "ko jūs darīsit", apraksts paliek vispārīgs un nekoncentrējas uz jūsu biznesu.
- Bibliotēkas instance netiek apstiprināta. Modelis var izsaukt novecojušu vai neesošu API; Salīdziniet ar oficiālo dokumentu.
- Atdodot visas mācības. Strādājot tikai ar kopsavilkumiem, nekad nelasot koda bāzi, jūs paliekat bezpalīdzīgu pie pirmās patiesās kļūdas.
Rezumējot
AI ir spēcīgs ceļvedis svešas kodu bāzes izpētē: kartē arhitektūru, vienkāršo sarežģītas funkcijas, izseko datu plūsmai, māca izmantot bibliotēku. Bet katrs skaidrojums ir hipotēze. Paskaidrojiet savu viedokli, sadaliet to un pārbaudiet kodā un pārbaudot katru kritisko apgalvojumu, ka modelis saka (un nē) "ir jāpārbauda". Ceļvedis ir AI; Jūs esat tas, kurš lasa karti un uzņemas atbildību.
Lietojumprogrammas uzdevums
Izvēlieties moduli, kas jums nav pazīstams vai ko esat tikko mantojis. Vispirms izņemiet objekta slāņus un faila ceļu, izmantojot veidni "koda bāzes kartēšana". Pēc tam soli pa solim izskaidrojiet šīs funkcijas vissvarīgāko funkciju, izmantojot veidni "funkcijas skaidrojums". Visbeidzot, personīgi pārbaudiet kodā vismaz divus apgalvojumus, ka modelis ir atzīmējis kā “jāpārbauda”, un atzīmējiet, vai tie ir patiesi vai nepatiesi.
kontrolsaraksts
- [ ] Es uztveru AI paziņojumu kā hipotēzi un pārbaudu to kodā.
- [ ] Skaidrojot kodu, es uzvednei pievienoju savu mērķi un uzmanību.
- [ ] Es apkopoju lielo kodu bāzi, sadalot to daļās.
- [ ] Es tiešsaistē pārbaudu kritiskos apgalvojumus, lai atrastu maldinošu nosaukumu/reversās loģikas slazdus.
- [ ] Es salīdzinu bibliotēkas piemērus ar oficiālo dokumentu un versiju.
- [ ] Es izmantoju AI kā ceļvedi, lai paātrinātu mācīšanos, nevis kā mācīšanās aizstājēju.