Qligħ:
- Kapaċità li tikteb funzjonijiet, klassijiet u moduli għall-AI b'definizzjonijiet ċari ta' input-output u restrizzjoni
- Kapaċità li tuża l-AI bħala sieħeb ta' programmar ta' par u timxi pass pass, f'biċċiet żgħar u verifikabbli
- Kapaċità li taqbad il-loġika u l-iżbalji tal-każ tat-tarf billi tikkompila l-kodiċi ġġenerat mill-AI u tħaddem b'eżempji żgħar
L-ipprogrammar tal-pari huwa meta żewġ żviluppaturi jaħdmu fuq l-istess problema, b'wieħed jikteb u l-ieħor jirrevedi. Il-kodifikazzjoni bl-AI hija l-verżjoni diġitali ta 'din ir-relazzjoni stess: inti tistabbilixxi d-direzzjoni, ir-restrizzjonijiet u l-kriterji ta' aċċettazzjoni; L-AI tipproduċi abbozz ta' malajr; Int tivverifika kull pass billi tikkumpilah u tittestjah. L-akbar nassa hawnhekk hija li tgħid lill-AI "iktbilli din l-applikazzjoni mill-bidu sat-tmiem" u taċċetta bl-addoċċ blokka ta '200 linja. L-ipprogrammar ta' par tajjeb jipproċedi f'passi żgħar: kull pass għandu jkun jinftiehem, jista' jiġi ttestjat u riversibbli.
F'din l-unità titgħallem kif tipprintja funzjonijiet, klassijiet u moduli b'kuntratt ċar ta' input-output; Kif tiggwida l-AI pass pass; u naraw kif jaqbdu l-loġika u l-iżbalji tal-każ tat-tarf billi tħaddem il-kodiċi li tipproduċi b’eżempji żgħar. L-għan mhuwiex il-veloċità, iżda l-veloċità verifikata.
Kunċetti: Kuntratt input-output: Definizzjoni ċara ta’ x’input tieħu funzjoni u x’output u mġiba ta’ żball twiegħed. Każ tat-tarf: Input li mhuwiex ordinarju iżda li fil-fatt jista' jseħħ (vojt, żero, negattiv, kbir ħafna, null). Żvilupp inkrementali: Ipproċedi b'biċċiet żgħar li jaħdmu u tivvalida kull pass.
Stampar Kodiċi b'Kuntratt Net
Il-bażi tal-kodiċi tal-kwalità hija li tiddefinixxi eżattament "dak li trid" qabel tibda taħdem. Meta tikteb funzjoni lill-AI, agħtiha ħames affarijiet: lingwa u verżjoni, tipi ta 'input u tifsiriet, output, kundizzjonijiet ta' żball, u restrizzjonijiet (prestazzjoni, projbizzjoni tal-librerija esterna, stil). Dan jipprevjeni lill-AI milli taħseb.
- Ikteb il-kuntratt. Input, output, żball, restrizzjoni.
- Staqsi għal unità żgħira. Funzjoni b'responsabbiltà waħda; Mhuwiex modulu enormi.
- Itlob blokk tat-test. Żid ftit ġirjiet/testijiet tal-kampjun ħdejn il-kodiċi.
- Ikkompila u mexxi. Ipprovaha b'każijiet tat-tarf, ivverifika l-output bl-għajnejn.
- Mur għall-pass li jmiss. Ladarba biċċa tkun ikkonfermata, ibni fuqha.
Prompt tal-funzjoni kuntrattata: "Ikteb funzjoni għal TypeScript 5. Għan: ikkalkula l-ammont totali ta 'oġġetti f'karrettun tax-xiri. Input: { prezz: numru, kwantità: numru }[] array. Output: numru (total). Regoli: tarmi Żball jekk il-kwantità jew il-prezz huwa negattiv; ritorn 0 għal firxa vojta; ammont tond għal 2 postijiet deċimali, emp kwantità, prezz deċimali, oġġett wieħed).”
Tiggwida l-AI bħala Par
Progress tajjeb fl-ipprogrammar tal-pari huwa djalogu aktar milli talba kbira waħda. L-ewwel, itlob l-iskeletru u mexxih; imbagħad żid stat tarf; imbagħad irranġa bug. Dan l-approċċ iżomm il-kodiċi jinftiehem u jpoġġik f'kontroll f'kull pass.
Progress inkrementali fil-pront: "Aħna se niktbu qarrej li jaqra fajl CSV u jikkonverti l-linji f'oġġett. Ejja mmorru PASS B'PASS, nimxu fuq il-pass li jmiss mingħajr ma nikkonferma kull pass. Pass 1: ikteb biss l-iskeletru li jaqsam il-fajl f'linji u jifred il-linja ta 'l-intestazzjoni. Żidx konverżjoni tat-tip jew maniġġar ta' żbalji s'issa. Żommha qasira, spjega s'issa."
Spjega u ġġustifika l-pront tal-kodiċi: "Spjega l-funzjoni li għadek kif ktibt, mhux linja b'linja, iżda deċiżjoni b'deċiżjoni: liema deċiżjoni tad-disinn ħadt u għaliex, liema każ tat-tarf ttrattat u kif, liema każijiet eskludejt deliberatament? Elenka 3 suppożizzjonijiet fil-kodiċi li m'għandix nitilfu."
Tip: Taċċettax il-kodiċi ġġenerat mill-AI mingħajr ma tifhimha. "Spjegali dan, liema suppożizzjonijiet għamilt?" Il-mistoqsija kemm tiżvela żbalji moħbija kif ukoll tippermettilek tiddefendi dak il-kodiċi, peress li l-kodiċi jibqa 'responsabbiltà tiegħek. Li tpoġġi kodiċi li ma tifhimx fil-produzzjoni hija bħal tibgħat kuntratt mingħajr ma tiffirmah.
Prompt Dgħajjef / Prompt Qawwija
DGĦAJFJA: "Ikteb funzjoni ta' għażla." (Riżultat: liema lingwa, x'qed jiġi magħżul, huwa stabbli, x'inhu r-restrizzjoni tal-prestazzjoni, kodiċi li huwa vag u probabbilment ma jaqbilx mar-rekwiżit.) STRONG: "Għal Java 17, ikteb metodu li jagħżel oġġett Lista<Impjegat> l-ewwel skond id-dipartiment (alfabetiku), imbagħad skont is-salarju (Ħalli l-lista oriġinali tiddeċiedi, MHUX tissostitwixxi l-lista oriġinali. l-aħħar. Spjega l-kumplessità tal-metodu fil-linja tal-kumment speċifika żid blokk tat-test prinċipali b'4 kampjuni.
Pront qawwija; Jinkludi kriterju tal-issortjar (żewġ livelli), regola tal-effett sekondarju (li tissostitwixxi l-oriġinali), imġieba nulla, u aspettattiva tat-test. Mingħajr dawn id-dettalji, l-AI tipproduċi soluzzjoni plawsibbli iżda mhux korretta; pereżempju jista' jikkorrompi l-lista oriġinali u dan iwassal għal żball sieket x'imkien ieħor.
Validazzjoni b'Każijiet Xifer u Kampjuni Żgħar
Il-kodiċi li jaħdem fix-xenarju kuntent mhuwiex il-kodiċi korrett. Konxjament seħħ kull funzjoni prodotta:
Tip ta 'każ tat-tarf
input tal-kampjun
imġieba mistennija
input vojt
Array/sekwenza vojta
Mhux żball, riżultat vojt loġiku
Żero/negattiv
0, -1
Imġieba definita u korretta
valur kbir
Miljuni ta’ rekords
Overflow/kontroll tal-prestazzjoni
null/mhux definit
nieqes spazju
Żball ikkontrollat jew default
Duplikat/mhux tas-soltu
ripetittiv, ordni inversa
riżultat korrett
Każijiet Mini
Każ 1 — Żball ta' arrotondament siekta. AI tikteb funzjoni li tiġbor flus b'tipi deċimali (float); 0.1 + 0.2 jagħti 0.30000000000000004. L-iżball jiġi solvut meta l-inġinier iżid ir-regola "Round għal 2 ċifri u uża pennies sħaħ". Regola ta’ 3 linji tipprevjeni eluf ta’ pennies ta’ varjanza fir-rikonċiljazzjoni ta’ kull xahar.
Każ 2 — Nassa tal-effett sekondarju. L-AI tikteb metodu li "jagħżel" lista, iżda timmodifika l-lista oriġinali f'postha. Imġieba mhux mistennija sseħħ minħabba li modulu ieħor juża l-istess lista. Jekk ir-restrizzjoni "bidla oriġinali" kienet fil-pront, l-iżball qatt ma jseħħ; jinqabad fir-reviżjoni tal-kodiċi u jipprevjeni 2 sigħat ta 'debugging.
Każ 3 — Qligħ pass pass. Żviluppatur jistampa modulu ta 'importazzjoni ta' 150 linja f'daqqa; Meta jsib żball, ma jistax isib minn fejn ġie. Żviluppatur ieħor jaqsam l-istess xogħol f'5 passi żgħar, jittestja kull pass f'2 minuti u jaqbad l-iżball immedjatament fit-3 pass.
Żbalji komuni
- Stampar ta 'blokki kbar f'talba waħda. Kodiċi riskjuż li huwa diffiċli biex jinftiehem u titwieled debug.
- Titlob għal kodiċi mingħajr ma jagħti kuntratt. Jekk input-output-error huwa ambigwu, AI se raden u tkun żbaljata.
- Tittestja biss ix-xenarju kuntent. Jekk input vojt, null, negattiv u kbir ma jiġix ippruvat, l-iżball jitħalla għall-produzzjoni.
- Taċċetta mingħajr fehim. Il-kodiċi li ma tiżvelax huwa dejn li ma tistax tiddefendi.
- Injora tipi sensittivi bħal effetti sekondarji u flus/data. Float flus bi storja prontezza hija sors klassiku ta 'żball.
Fil-qosor
Il-kitba tal-kodiċi bl-AI hija pprogrammar ta 'par dixxiplinat: kuntratt ċar, passi żgħar, tibni u ttestja f'kull pass. L-għoti tal-kwartett input-output-żball-restrizzjoni mill-bidu jiddetermina l-kwalità tal-kodiċi. Li tispjega l-kodiċi li tipproduċi u tisfurzah b'kaxxi tat-tarf iġib fil-wiċċ l-iżbalji moħbija taħt ix-xenarju kuntent. Is-sors tal-veloċità mhix aċċettazzjoni għomja; huwa abbozz ta' malajr flimkien ma' verifika ta' malajr.
Kompitu ta' applikazzjoni
Agħżel funzjoni żgħira iżda reali (eż. totali tal-basket, differenza fid-data, parsing tat-test). Stampa bl-użu tal-funzjoni kuntrattata fil-pront; Żid mill-inqas 5 xenarji tat-test ħdejha. Mexxi l-kodiċi u pprova 5 edge cases konxjament, billi tuża t-tabella bħala gwida. Sib bug f'mill-inqas każ tarf wieħed (jekk le, iddisinja input ġdid biex iġġiegħel il-funzjoni), waħħalha b'AI, u vverifika billi terġa 'testa li l-iffissar ħadem.
lista ta' kontroll
- [ ] Ktibt kuntratt li jinkludi input, output, żbalji u restrizzjonijiet.
- [ ] Ġenerat il-kodiċi f'passi żgħar minflok blokka kbira waħda.
- [ ] Żidt blokk tal-ġirja tat-test/kampjun ħdejn il-kodiċi.
- [ ] Ittestjajt konxjament mill-inqas 5 edge cases.
- [ ] Spjegajt il-kodiċi lill-AI u rrevejt is-suppożizzjonijiet tagħha.
- [ ] Ikkoreġejt l-iżball misjub u kkonfermajt it-tiswija billi erġajt ittestja.