Hagnaður:
- Geta til að skrifa aðgerðir, flokka og einingar í gervigreind með skýrum inntak-úttak og þvingunarskilgreiningum
- Geta til að nota gervigreind sem paraforritunarfélaga og framfarir skref fyrir skref, í litlum, sannanlegum bitum
- Geta til að ná rökfræði- og brúntilviksvillum með því að setja saman kóðann sem myndaður er af AI og keyra hann með litlum dæmum
Pörforritun er þegar tveir forritarar vinna að sama vandamálinu, þar sem annar skrifar og hinn endurskoðar. Kóðun með gervigreind er stafræna útgáfan af þessu sambandi: þú setur stefnuna, takmarkanir og viðurkenningarviðmið; AI framleiðir skjót drög; Þú staðfestir hvert skref með því að setja saman og prófa það. Stærsta gildran hér er að segja gervigreindinni „skrifaðu mér þetta forrit frá upphafi til enda“ og samþykkja í blindni 200 línu blokk. Góð paraforritun fer fram í litlum skrefum: hvert skref ætti að vera skiljanlegt, prófanlegt og afturkræft.
Í þessari einingu munt þú læra hvernig á að prenta aðgerðir, flokka og einingar með skýrum inntak-úttakssamningi; Hvernig á að leiðbeina gervigreind skref fyrir skref; og við munum sjá hvernig á að ná rökfræði- og brúntilviksvillum með því að keyra kóðann sem hann framleiðir með litlum dæmum. Markmiðið er ekki hraði, heldur sannprófaður hraði.
Hugtök: Input-output contract: Skýr skilgreining á hvaða inntak fall tekur og hvaða úttak og villuhegðun hún lofar. Edge case: Inntak sem er ekki venjulegt en getur í raun átt sér stað (tómt, núll, neikvætt, mjög stórt, núll). Stigvaxandi þróun: Halda áfram með litla, vinnandi stykki og staðfesta hvert skref.
Prentun kóða með netsamningi
Grundvöllur gæðakóða er að skilgreina nákvæmlega „hvað þú vilt“ áður en vinna er hafin. Þegar aðgerð er rituð í gervigreind, gefðu henni fimm atriði: tungumál og útgáfu, inntakstegundir og merkingu, úttak, villuskilyrði og takmarkanir (frammistaða, bann við ytri bókasafni, stíll). Þetta kemur í veg fyrir að gervigreind geti giskað.
- Skrifaðu samninginn. Inntak, úttak, villa, þvingun.
- Biðjið um litla einingu. Aðgerð með eina ábyrgð; Það er ekki stór eining.
- Biðja um prufublokk. Bættu við nokkrum sýnishornum/prófum við hlið kóðans.
- Settu saman og keyrðu. Prófaðu það með brúnhylkjum, staðfestu úttakið með auga.
- Farðu í næsta skref. Þegar verk hefur verið staðfest skaltu byggja á því.
Contracted function prompt: "Skrifaðu fall fyrir TypeScript 5. Tilgangur: reikna út heildarmagn vara í innkaupakörfu. Inntak: { price: number, quantity: number }[] fylki. Output: number (total). Reglur: henda Villa ef magn eða verð er neikvætt; skila 0 fyrir tómt fylki; afrennsli skal nota aukastafatölu fyrir 2 aukastafir. 5 próftilvik fyrir neðan fallið (venjulegt, tómt, neikvætt magn, aukastaf, stakur hlutur).“
Að leiðbeina gervigreind sem par
Góður árangur í paraforritun er samtal frekar en ein stór beiðni. Fyrst skaltu biðja um beinagrindina og keyra hana; bættu síðan við brúnríki; þá laga villu. Þessi nálgun heldur kóðanum skiljanlegum og gefur þér stjórn á hverju skrefi.
Stigvaxandi framfarir: "Við munum skrifa lesanda sem les CSV-skrá og breytir línunum í hlut. Við skulum fara SKREF FYRIR SKEP, halda áfram í næsta skref án þess að ég staðfesti hvert skref. Skref 1: Skrifaðu bara beinagrindina sem skiptir skránni í línur og aðskilur hauslínuna. Ekki bæta við tegundumbreytingu eða villumeðferð ennþá.
Útskýrðu og rökstuddu kóðann: "Útskýrðu fallið sem þú skrifaðir, ekki línu fyrir línu, heldur ákvörðun fyrir ákvörðun: hvaða hönnunarákvörðun þú tókst og hvers vegna, hvaða jaðartilfelli þú afgreiddir og hvernig, hvaða tilvik útilokaðir þú vísvitandi? Nefndu 3 forsendur í kóðanum sem ég ætti ekki að missa af."
Ábending: Ekki samþykkja AI-myndaðan kóða án þess að skilja hann. "Skýrðu þetta fyrir mér, hvaða forsendur gerðir þú?" Spurningin sýnir bæði faldar villur og gerir þér kleift að verja þann kóða, þar sem kóðinn er áfram á þína ábyrgð. Að setja kóða sem þú skilur ekki í framleiðslu er eins og að senda út samning án þess að skrifa undir hann.
Veik kvaðning / sterk kvaðning
WEAK:"Skrifaðu flokkunaraðgerð."(Niðurstaða: hvaða tungumál, hvað er verið að flokka, er það stöðugt, hvað er frammistöðuþvingunin, kóði sem er óljós og passar líklega ekki við kröfuna.)STERK:"Fyrir Java 17, skrifaðu aðferð sem raðar List<Employee> hlut fyrst eftir deild (stafrófsröð), síðan eftir launum (EKKI skila nýju deildinni, EKKI skila nýju deildinni). síðast. Útskýrðu hversu flókin aðferðin er í athugasemdarlínunni.
Öflug hvetja; Inniheldur flokkunarviðmið (tveggja stig), aukaverkanareglu (sem kemur í stað upprunalegs), núllhegðun og prófvæntingar. Án þessara smáatriða framleiðir gervigreind trúlega en ranga lausn; til dæmis getur það skemmt upprunalega listann og það mun leiða til hljóðlausrar villu annars staðar.
Löggilding með Edge Cases og litlum sýnum
Kóðinn sem virkar í hamingjusömu atburðarásinni er ekki réttur kóði. Þvingaðu meðvitað hverja aðgerð sem framleidd er:
Tegund brúnkassa
sýnisinntak
væntanleg hegðun
autt inntak
Tóm fylki/strengur
Ekki villa, rökrétt tóm niðurstaða
Núll/neikvætt
0, -1
Skilgreind og rétt hegðun
mikils virði
Milljónir platna
Yfirflæði/frammistöðustýring
núll/óskilgreint
vantar pláss
Stýrð villa eða sjálfgefið
Afrit/óvenjulegt
endurtekið, öfug röð
rétta niðurstöðu
Mini Cases
Tilvik 1 — Hljóð námundunarvilla. AI skrifar fall sem safnar peningum með aukastaf (flot) gerðum; 0,1 + 0,2 gefur 0,300000000000000004. Villan leysist þegar verkfræðingur bætir við reglunni „Rundið að 2 tölustöfum og notið heila smáaura“. Þriggja lína regla kemur í veg fyrir breytileika þúsunda króna í mánaðarlegri afstemmingu.
Tilfelli 2 - Aukaverkanagildra. Gervigreindin skrifar aðferð sem „raðar“ lista, en breytir upprunalega listanum á sínum stað. Óvænt hegðun á sér stað vegna þess að önnur eining notar sama lista. Ef "breyta upprunalegu" þvinguninni væri í hvetjunni, myndi villa aldrei eiga sér stað; festist í endurskoðun kóða og kemur í veg fyrir 2 tíma kembiforrit.
Mál 3 — Hagnaður skref fyrir skref. Þróunaraðili prentar 150 línu innflutningseiningu í einu; Þegar hann finnur mistök getur hann ekki fundið hvaðan þau komu. Annar verktaki skiptir sömu vinnu í 5 lítil skref, prófar hvert skref á 2 mínútum og greinir villuna strax í 3. skrefi.
Algeng mistök
- Prentun stórra blokka í einni beiðni. Áhættusamur kóða sem erfitt er að skilja og villuleit fæðist.
- Að biðja um kóða án þess að gefa upp samning. Ef input-output-villa er óljós mun gervigreind giska og hafa rangt fyrir sér.
- Bara að prófa hamingjusömu atburðarásina. Ef ekki er reynt að nota tómt, núll, neikvætt og stórt inntak, er villan eftir til framleiðslu.
- Samþykkja án þess að skilja. Kóðinn sem þú gefur ekki upp er skuld sem þú getur ekki varið.
- Hunsa viðkvæmar tegundir eins og aukaverkanir og peninga/dagsetningu. Fljótandi peningar með tímalausa sögu eru klassísk uppspretta villu.
Í stuttu máli
Að skrifa kóða með gervigreind er öguð paraforritun: skýr samningur, lítil skref, smíða og prófa í hverju skrefi. Að gefa input-output-error-constraint kvartettinn frá upphafi ákvarðar gæði kóðans. Að útskýra kóðann sem hann framleiðir og þvinga hann með brúntilfellum kemur upp á yfirborðið villurnar sem eru faldar undir hamingjusömu atburðarásinni. Uppspretta hraðans er ekki blind viðurkenning; er fljótleg uppkast auk skjótrar staðfestingar.
Umsóknarverkefni
Veldu lítið en raunverulegt fall (t.d. heildarkörfu, dagsetningarmunur, textaþáttun). Prentaðu með því að nota samdráttarboðið; Bættu við að minnsta kosti 5 prófunarsviðum við hliðina á henni. Keyrðu kóðann og reyndu 5 brúntilvik meðvitað, notaðu töfluna sem leiðbeiningar. Finndu villu í að minnsta kosti einu jaðartilviki (ef ekki, hannaðu nýtt inntak til að þvinga fram aðgerðina), lagfærðu hana með gervigreind og staðfestu með því að prófa aftur að lagfæringin virkaði.
gátlisti
- [ ] Ég skrifaði samning sem inniheldur inntak, úttak, villur og takmarkanir.
- [ ] Ég bjó til kóðann í litlum skrefum í stað einnar stórrar blokkar.
- [ ] Ég bætti við prófunar-/sýniskeyrslublokk við hlið kóðans.
- [ ] Ég hef meðvitað prófað að minnsta kosti 5 brúntilvik.
- [ ] Ég útskýrði kóðann fyrir gervigreindinni og fór yfir forsendur hans.
- [ ] Ég leiðrétti villuna sem fannst og staðfesti lagfæringuna með því að prófa aftur.