Njësia 3 / 12

Leximi, shpjegimi dhe përputhshmëria e kodit me bazën e re të kodit

Fitimet:

  • Aftësia për të hartuar një bazë të kodit të huaj shtresë pas shtrese me AI dhe për të gjurmuar një veçori nga fundi në fund
  • Aftësia për të shpjeguar funksionet komplekse hap pas hapi dhe për të monitoruar rrjedhën e të dhënave
  • Aftësia për të parë përshkrimin e AI si një hipotezë dhe për të verifikuar pretendimet kritike në kod

Zhvilluesit lexojnë kodin në vend që të shkruajnë kodin. Kur filloni një punë të re, merrni përsipër një shërbim të lënë nga dikush tjetër ose kontribuoni në një bibliotekë me burim të hapur, detyra juaj e parë është "çfarë po ndodh këtu?" është të gjesh një përgjigje për pyetjen. Inteligjenca artificiale mund ta zvogëlojë këtë detyrë zbulimi në orë dhe jo në javë - por vetëm kur përdoret me pyetjet e duhura dhe një refleks verifikimi.

Në këtë njësi, ne mësojmë të përdorim AI si një "udhëzues kodi": hartimi i një baze kodi të huaj, përkthimi i një funksioni kompleks në gjuhë të thjeshtë, ndjekja e një rrjedhe të dhënash dhe gjetja e mënyrës se si të përdoret një bibliotekë. Rregulli i artë këtu është se shpjegimi i AI është një hipotezë; ju e verifikoni atë me vetë kodin.

Pse është shënimi i kodit i fuqishëm por i rrezikshëm?

Një LLM është shumë i mirë në leximin e një pjese të kodit dhe përkthimin e tij në gjuhën njerëzore, si p.sh. "ky funksion rifreskon shenjën e sesionit të përdoruesit"; sepse ka mësuar modele nga miliona shembuj të ngjashëm. Ky është një kursim i madh kohe, veçanërisht me funksione të gjata dhe të ndërthurura.

Këtu është rreziku: modeli ndonjëherë tregon atë që kodi duket se bën, jo atë që bën në të vërtetë. Nëse emri i ndryshores është isAdmin por logjika brenda është e kundërt, modeli mund të shikojë emrin dhe të nxjerrë përmbledhjen e gabuar. Prandaj, përpara se ta bëni deklaratën bazë për vendimet tuaja kritike, duhet të kontrolloni vizualisht sjelljen e supozuar në linjat përkatëse. Përshkrimi ju çon në vendin e duhur; Kodi ka fjalën e fundit.

Kujdes: Mos e llogarisni përmbledhjen e AI "ky kod bën X" vetëm si provë në një vendim që përfshin sigurinë ose fluksin e parave. Përmbledhja është një hartë që tregon se ku të shikoni; Ju jepni konfirmimin në kod.

Hapat për të hartuar një bazë kodi të huaj

  1. Filloni në nivelin më të lartë. Së pari, njihuni me strukturën e dosjeve dhe pikat e hyrjes (kryesore, nisja e aplikacionit, ruteri i shtëpisë). Pyete AI "cilat janë shtresat e aplikacionit të bazuara në këtë strukturë drejtorie?" pyesni.
  2. Gjurmo një veçori nga fundi në fund. "Cilët skedarë aktivizohen dhe në çfarë rendi kur përdoruesi regjistrohet?" — Të shikosh një rrjedhë të vetme është më mësimdhënëse sesa të lexosh të gjithë arkitekturën.
  3. Lokalizoni termat. Pyetni AI për koncepte specifike të projektit ("qiramarrës", "libër", "punë drejtues") dhe gjeni ekuivalentët e tyre në kod.
  4. Ju thjeshtuat funksionin kompleks. Shpjegoni një funksion të gjatë hap pas hapi, më pas shënoni ato hapa në kod.
  5. Verifiko. Bëni një ndryshim të vogël dhe bëni teste për të testuar të kuptuarit tuaj; Testi ju tregon menjëherë nëse kuptimi juaj është i gabuar.

Tre Mini Rastet

Rasti 1 — Shërbimi i trashëguar u reduktua nga 2 ditë në 3 orë. Një zhvillues mori përsipër një shërbim të rakordimit të pagesave me 4000 linja nga një koleg që po largohej. Sikur AI të përmbledhte modulet dhe të gjurmonte një rrjedhë pagese nga fundi në fund; Ai personalisht verifikoi dy funksione kritike në kod. Zbulimi, i cili u vlerësua të zgjaste 2 ditë me "leximin e verbër" klasik, u përfundua në afërsisht 3 orë me metodën e verifikuar të AI.

Rasti 2 - Kurthi i emrit mashtrues. Një funksion u quajt validateAndSave, por përmbledhja e AI tha "së pari vërteton, pastaj kursen". Kur zhvilluesi hyri në kod, ai pa që ruajtja ishte bërë përpara verifikimit dhe verifikimi shkroi vetëm në regjistër. Ky ishte shkaku kryesor i një bilete të meta në prodhim. Nëse nuk do të kishte vërtetim në kod, përmbledhja e rreme do të fshihte gabimin.

Rasti 3 - Mësimi i bibliotekës së re u përshpejtua. Ekipi do të integronte një bibliotekë të radhës së mesazheve me të cilën nuk ishin të njohur. E pyeta AI "si të vendosësh një konsumator në këtë bibliotekë, si të provosh përsëri në rast gabimi?" Ata kërkuan dhe u prodhuan një mostër; Pastaj ata krahasuan shembullin me dokumentin zyrtar dhe rregulluan një ndryshim (versioni i vjetër API). Koha e mësimit është përgjysmuar.

Katër modele të kopjueshme

Harta e bazës së kodit:

Më poshtë është lista e drejtorive/skedarëve të një projekti. 1) Ekstraktoni shtresat e aplikacionit (hyrja, logjika e biznesit, aksesi i të dhënave, etj.). 2) Listoni udhëtimin e mundshëm të skedarit të një kërkese "{{shembull prona}}". 3) Shënoni zonat për të cilat nuk jeni të sigurt si "duhet të verifikohen". {{lista_directory}}

Përshkrimi i funksionit (hap pas hapi):

Ndajeni këtë funksion në grupe rreshtash dhe shpjegoni në turqisht të thjeshtë se çfarë bën secili grup. Së fundi: listoni hyrjen, daljen, efektet anësore (baza e të dhënave/skedari/rrjeti) dhe rastet e mundshme anësore. Mblidhni sjelljet për të cilat nuk jeni të sigurt në një titull "duhet të verifikohet" VEÇANTË.{{funksion}}

Ndjekja e rrjedhës së të dhënave:

Nga vjen vlera "{{variabla/të dhëna}}", çfarë transformimesh kalon, ku shkruhet? Krijoni një zinxhir rrjedhës duke përdorur emrat e funksioneve në kod. Kodi i ngjashëm: {{code_segments}}

Mësoni si të përdorni bibliotekën:

Unë dua të bëj {{ qëllim }} me {{bibliotekë}}. Jepni një shembull minimal funksional. Sigurohuni që çdo funksion që përdorni i përket në të vërtetë kësaj biblioteke; nëse nuk jeni të sigurt, shënoni "verifiko nga dokumentacioni zyrtar". Versioni: {{version}}.

Prompt i dobët / Prompt i fortë

E dobët: "Shpjego këtë kod." (Çfarë po pyesni? Në çfarë niveli? Çfarë do të bëni?)
Strong: "Unë po e marr përsipër këtë funksion dhe do të ndryshoj logjikën e riprovës në të. Shpjegoni funksionin hap pas hapi, veçanërisht në rast gabimi, tregoni qartë sa herë dhe në çfarë intervali provoni përsëri; shënoni pjesët për të cilat nuk jeni të sigurt si "duhet të verifikohen". [kodi]"

Versioni i fortë jep qëllimin tuaj (do të ndryshoj logjikën e riprovës) dhe fokusin; në mënyrë që shpjegimi të mos jetë një përmbledhje e përgjithshme, por një udhëzues i dobishëm.

Kërkimi

AI bën mirë

Sigurohuni që të verifikoni

Përmbledhje e përgjithshme e arkitekturës

Hiqni shtresat

Sekuenca aktuale e thirrjeve

funksion kompleks

Shpjegimi hap pas hapi

Logjikë e kundërt, efekte anësore

rrjedha e të dhënave

Hartimi i zinxhirit

Degë të kushtëzuara, shtigje të anashkaluara

Përdorimi i bibliotekës

Gjenerimi i mostrave

Autenticiteti dhe versioni i API-së

Asnjë zëvendësim për mirëkuptimin njerëzor

Përshkrimi i AI nuk është një zëvendësim për të mësuarit; e shpejton. Të "zotërosh" vërtetë një bazë kodesh do të thotë të ndërtosh një model mendor të saj dhe ai model përshtatet vetëm kur lexon kodin, bën ndryshime të vogla dhe shikon rezultatin. Përdorni inteligjencën artificiale si një mentor që do t'ju thoshte "shikoni këtu, kjo është e rëndësishme" - por lexoni ku e shihni me sytë tuaj.

Këshillë: Kur mendoni se kuptoni një funksion, kërkoni nga AI që ta "përmbledhë atë në një fjali"; Pastaj krahasojeni me fjalinë tuaj. Nëse dy fjali kundërshtojnë njëra-tjetrën, ose ju ose modelit keni humbur diçka - dhe ju e zgjidhni atë në kod.

Gabimet e zakonshme

  • Konsideroni përmbledhjen si provë. Marrja e një vendimi për kodin pa verifikuar përshkrimin do të thotë të biesh në grackën e emrave mashtrues.
  • Ngjitja e copave shumë të mëdha. Përmbledhja e 2000 rreshtave në të njëjtën kohë jep rezultate sipërfaqësore dhe të prirur ndaj gabimeve; ndajnë në copa.
  • Duke mos deklaruar qëllimin. Nëse nuk thoni "çfarë do të bëni", përshkrimi mbetet i përgjithshëm dhe nuk fokusohet në biznesin tuaj.
  • Nuk e vërteton shembullin e bibliotekës. Modeli mund të thërrasë API të vjetëruar ose jo-ekzistente; Krahasoni me dokumentin zyrtar.
  • Duke i dhënë të gjitha mësimet. Puna vetëm me abstrakte pa lexuar kurrë bazën e kodit ju lë të pafuqishëm në gabimin e parë të vërtetë.

Në përmbledhje

AI është një udhëzues i fuqishëm për të eksploruar një bazë kodi të huaj: harton arkitekturën, thjeshton funksionet komplekse, gjurmon rrjedhën e të dhënave, mëson përdorimin e bibliotekës. Por çdo shpjegim është një hipotezë. Bëjeni të qartë pikën tuaj, zbërthejeni atë dhe verifikoni në kod dhe testuar çdo pohim kritik që modeli thotë (dhe jo) "duhet të verifikohet". Udhëzuesi është AI; Ju jeni ai që lexoni hartën dhe mbani përgjegjësinë.

Detyra e aplikimit

Zgjidhni një modul me të cilin nuk jeni njohur ose që sapo e keni trashëguar. Së pari, nxirrni shtresat dhe udhëtimin e skedarit të një veçorie me shabllonin "mapping bazë të kodit". Më pas shpjegoni funksionin më kritik të asaj veçorie hap pas hapi me shabllonin "shpjegimi i funksionit". Së fundi, kontrolloni personalisht në kod të paktën dy pohime që modeli ka shënuar si "duhet të verifikohet" dhe vini re nëse ato janë të vërteta apo të rreme.

listë kontrolli

  • [ ] Unë e trajtoj deklaratën e AI si një hipotezë dhe e verifikoj atë në kod.
  • [ ] Ndërsa shpjegoj kodin, shtoj qëllimin dhe fokusin tim në kërkesë.
  • [ ] Unë përmbledh bazën e madhe të kodit duke e ndarë atë në pjesë.
  • [ ] Unë kontrolloj pretendimet kritike në linjë për kurthe mashtruese të emrit/logjikës së kundërt.
  • [ ] Unë krahasoj shembujt e bibliotekës me dokumentin dhe versionin zyrtar.
  • [ ] Unë përdor AI si një udhëzues për të përshpejtuar të mësuarit, jo si një zëvendësim për të mësuarit.