Unità 2 / 12

Scripting u AutoComplete

Qligħ:

  • Kapaċità li timmappa l-modalità taċ-chat biex tikkoreġi t-tip ta 'kompitu bit-tlestija inline
  • Kapaċità li tikteb prompts qawwija ta 'produzzjoni li jinkludu kuntratti ta' input/output, każijiet edge u restrizzjonijiet ta 'stil
  • Kapaċità li tivvalida kodiċi ġġenerat u kwalunkwe dipendenzi proposti ġodda qabel ma jingħaqdu

L-ewwel punt ta’ kuntatt ta’ żviluppatur ma’ AI huwa spiss autocomplete — karatteristika li tissuġġerixxi l-linja li jmiss hekk kif ittajpja — jew tgħid “ittajpja dik il-funzjoni” f’tieqa taċ-chat. It-tnejn jużaw l-istess magna iżda jeħtieġu dixxiplini differenti. F'din l-unità, nittrasformaw il-ġenerazzjoni tal-kodiċi minn "iktbuha" każwali fi pass ta 'inġinerija li l-output tiegħu huwa prevedibbli u verifikabbli.

L-għan huwa li ddawwar l-AI minn għodda li tħaffef il-magna tat-tajpjar tiegħek għal apprendist li jaħdem fir-restrizzjonijiet li ssettja. Apprendist iggwidat tajjeb jiffranka l-ħin; Apprendist mhux iggwidat jipproduċi mess li trid tnaddaf aktar tard.

Żewġ Modi ta 'Użu: Tlestija Inline u Chat

It-tlestija inline tidħol fis-seħħ hekk kif ittajpja l-editur tiegħek; Int ittajpja firma ta' funzjoni jew linja ta' kumment u tissuġġerixxi l-bqija. Huwa tajjeb ħafna għall-veloċità, iżda għandu kuntest dejjaq: jara biss il-kodiċi fiż-żona immedjata. Huwa għalhekk li taħdem l-aħjar meta tikteb l-intenzjoni tiegħek b'mod ċar f'kumment. Pereżempju, l-email tal-utent //validate, armi ValidationError jekk kumment invalidu jtejjeb b'mod sinifikanti s-suġġeriment hawn taħt.

Il-modalità ta' chat hija għal kompiti akbar u strutturati: "Żid il-paġnar ma' din il-klassi", "Oħroġ interface ta' dak is-servizz". Hawnhekk għandek il-lussu li tagħti rwol, kuntest u format. Ir-regola ġenerali hija: tlestija għal kompiti żgħar u li jirriżultaw, konverżazzjoni għal kompiti li jeħtieġu ħsieb u struttura.

Tip: Taċċettax bl-addoċċ is-suġġeriment tat-tlestija b'"Tab". Aqra l-linja ssuġġerita għat-tieni; Isem varjabbli mhux korrett jew kundizzjoni maqluba l-aktar komunement joħroġ minn hawn.

Passi biex tittraduċi l-intenzjoni f'kodiċi

  1. Iddefinixxi l-kuntratt. X'inhi l-input, l-output u l-imġieba ta 'żball tal-funzjoni? Bħal "Ikseb email, normalizza jekk validu, armi żball jekk invalidu".
  2. Iddikjara r-restrizzjonijiet. Tużax dipendenza esterna? Gwida tal-istil speċifika? Hemm limitu ta' prestazzjoni?
  3. Agħti eżempju. Par input-output (“ali@x.com → validu, ali@ → żball”) iċċaqlaq il-fehim tal-mudell tal-intenzjoni minn tbassir għal preċiżjoni.
  4. Staqsi għal biċċiet żgħar. Funzjoni waħda, responsabbiltà waħda. Imbagħad imxi għal dak li jmiss.
  5. Aqra u mexxi l-kodiċi ġġenerat. Il-kumpilazzjoni + prova manwali ta' malajr hija l-orħos pass ta' assigurazzjoni.

Tliet Każijiet Mini

Każ 1 — Il-produzzjoni mmexxija mill-kummenti żżid l-eżattezza. Żviluppatur l-ewwel talab funzjoni ta 'parsing tad-data b'korp vojt u kiseb ir-riżultat korrett fi 3 rawnds. Fit-tieni tentattiv, meta ddefinijt il-funzjoni b'kumment ta '4 linji (formati aċċettati, regola taż-żona tal-ħin, kundizzjoni ta' żball) u tlabt, ġie l-kodiċi li ħadem fl-ewwel rawnd. L-istess mudell, l-istess jum; id-differenza kienet biss iċ-ċarezza tal-intenzjoni.

Każ 2 — Li ma tiġix speċifikata verżjoni hija għalja. Tim wieħed tħabtu mal-API legacy bbażata fuq callback li tissostitwixxi fs.promises fil-kodiċi prodott għal Node.js. Meta l-linja "Uża Node 20, ESM, async/wait" ġiet miżjuda mal-pront, il-produzzjoni segwiet il-proġett l-ewwel darba; Il-medja ta' 12-il minuta mqattgħin fuq il-korrezzjoni ġiet reset.

Każ 3 — Qligħ reali fil-kodiċi boilerplate. Mikroservizz kien jeħtieġ 6 DTO ġodda (Data Transfer Object — klassi tad-dejta sempliċi li ġġorr id-dejta bejn is-saffi) u r-regoli ta’ validazzjoni tagħhom. Dak li qabel kien madwar 90 minuta ta 'xogħol manwali tnaqqas għal 35 minuta meta prodott u rivedut mill-AI; Peress li r-ripetizzjoni tal-kodiċi hija għolja u l-mudell huwa ċar, l-AI ħadmet fl-iktar qasam effiċjenti tagħha hawn.

Erba' Mudelli Kopjabbli

Ġenerazzjoni tal-funzjoni bbażata fuq kuntratt:

Rwol: Inti żviluppatur diliġenti {{lingwa}}. Kuntratt ta' funzjoni:- Isem: {{isem}}- Input: {{tipi u t-tifsira tagħhom}}- Output: {{tip u tifsira}}- Status ta' żball: {{x'jintrema'/jintreġġa' lura meta}}Restrizzjonijiet: {{l-ebda dipendenzi esterni / stil / prestazzjoni}} {{input u tifsira:_}} {{input u tifsira}} {{output_1}}- {{entry_2}} -> {{error_2}}Agħti l-ewwel firma + pjan qasir, imbagħad kodiċi. Testijiet tal-kitba, funzjoni biss.

Biex tqabbel l-istil eżistenti (adatta ruħek għall-bażi tal-kodiċi):

Hawn taħt hawn eżempju funzjoni mill-proġett tagħna; Tgħallem l-ismijiet, l-immaniġġjar tal-iżbalji u l-istil tal-kumment hawn. Ikteb funzjoni għal {{new_task}} bl-ISTESS stil. Eżempju: {{current_code}}

Mill-iskeletru sal-mili (stub → implimentazzjoni):

Imla l-iskeletru tal-funzjoni hawn taħt skont it-TODOs fil-kummenti. IBdel il-firma u t-tip ta' ritorn. M'għandekx tagħmel funzjoni helper li ma teżistix; jekk meħtieġ, għarrafni "dan il-helper huwa meħtieġ". {{skelet_kod}}

Paragun alternattiv ta' app:

Agħti 2 implimentazzjonijiet differenti għal {{kompitu}}: (a) prijoritizzazzjoni tal-qari, (b) prijoritizzazzjoni tal-prestazzjoni. Ikteb sentenza waħda "meta jkun preferibbli" taħt kull waħda.

Pront dgħajjef / Pront qawwi

Dgħajjef: "Iktbilli funzjoni ta 'verifika tal-email."
Qawwija: "TypeScript 5, librerija standard biss. Ikteb isValidEmail(input: string): boolean. Ittrimmja l-ispazji, tagħmilha insensittiva għall-każi, a@b.co hija valida, a@, @b.co, string vojta hija invalida. Jekk se tuża regex, tkun kumpless żżejjed; żid 2 linji ta 'kummenti."

Verżjoni qawwija; Jirritorna l-lingwa, il-verżjoni, il-firma, il-każijiet tat-tarf, u restrizzjoni tal-istil. Għalhekk, il-kodiċi ġġenerat kemm jaħdem kif ukoll jidħol fil-proġett tiegħek.

Approċċ

Meta tuża

Attenzjoni

Tlestija inline

Inserzjonijiet żgħar fil-fluss

Taċċettax is-suġġeriment mingħajr ma taqrah

Produzzjoni bbażata fuq kuntratt fiċ-chat

Funzjoni/klassi ġdida

Agħti eżempju u każ tarf

Produzzjoni mill-kampjun tal-istil

Żieda mal-kodiċi eżistenti

Agħżel il-kodiċi tal-kampjun attwali

mili tal-iskeletru

Firma fissa, korp vojt

Nibdlu l-firma

Id-Duplikazzjoni tal-Kodiċi u n-Nassa tad-Dipendenza

L-AI ħafna drabi tirrakkomanda librerija ġdida biex tagħmel xogħolha aktar faċli. Xi drabi dan ikun preċiż, xi drabi jżid dipendenza bla bżonn mal-proġett tiegħek jew jissuġġerixxi pakkett li ma jeżistix (alluċinazzjoni). Regola: tikkonferma kull dipendenza ġdida. Iżżidhiex mal-proġett mingħajr ma tivverifika li l-pakkett fil-fatt jeżisti, jinżamm, u għandu l-liċenzja xierqa. Ħafna mill-ħin helper diġà fil-proġett huwa aħjar minn pakkett ġdid.

Attenzjoni: Irrevedi l-linji ta 'importazzjoni ssuġġeriti minn AI. Isem ta' pakkett li ma jeżistix (li jista' jixbah ukoll pakketti foloz imsejħa "typo-squatting") kemm ikisser il-kumpilazzjoni kif ukoll joħloq riskju għas-sigurtà.

Żbalji komuni

  • Wara li l-firma tkun determinata mill-mudell. Jekk ma tiffissax it-tipi ta 'input/output, ma' kull produzzjoni tiġi firma differenti u l-integrazzjoni ssir diffiċli.
  • Biex ma nsemmux każijiet edge. Input vojt, null, numru negattiv, valur kbir ħafna — jekk ma tispeċifikax dawn, il-mudell jikteb il-"passaġġ kuntenti", taqbeż it-truf.
  • Tgħaqqad is-suġġeriment mingħajr ma tittestjah. Kodiċi li jidher li jaħdem ma jfissirx li jaħdem.
  • Taċċetta dipendenza bla bżonn. Iż-żieda ta 'librerija sħiħa għal linja waħda toħloq dejn tekniku.
  • Inkonsistenza fl-istil. Ismijiet differenti u mmaniġġjar ta 'żbalji mill-bqija tal-proġett jagħmlu l-bażi tal-kodiċi irregolari.

Fil-qosor

Il-ġenerazzjoni tal-kodiċi hija qawwija meta tittraduċi l-intenzjoni f'kuntratt ċar. Uża tlestija inline għal kompiti żgħar, in-stream, u għal kompiti li jistabbilixxu struttura fil-konversazzjoni. Inti tispeċifika tipi ta 'input/output, każijiet tat-tarf, verżjoni, u stil; Agħti eżempju tal-mudell; jivverifika kull dipendenza ġdida; u mexxi u aqra kull biċċa prodotta. L-AI tagħti l-aħjar riżultati f'kodiċi formuli u ripetittiv — mexxiha hemmhekk, fil-limiti li ssettja.

Kompitu ta' applikazzjoni

Agħżel funzjoni żgħira attwali mill-proġett tiegħek li għandek bżonn tikteb. L-ewwel ipprintjaha lill-AI bil-mudell ta '"ġenerazzjoni ta' funzjoni bbażata fuq kuntratt", billi tagħti tipi ta 'input/output, żewġ każijiet tat-tarf, u restrizzjoni ta' stil. Iġbor il-kodiċi ġġenerat u pprovah b'żewġ inputs differenti. Imbagħad staqsi l-istess funzjoni għal darb'oħra, din id-darba "ktbilli dan" mingħajr ebda kuntest, u qabbel iż-żewġ outputs linja b'linja: liema każijiet tat-tarf intilfu, kemm kienu meħtieġa korrezzjonijiet?

lista ta' kontroll

  • [ ] Naf fejn nuża l-modalità taċ-chat b'tlestija inline.
  • [ ] Niddetermina l-kuntratt ta' input/output u l-każijiet edge fil-ġenerazzjoni tal-funzjoni.
  • [ ] Għamilt drawwa li nżid l-informazzjoni dwar il-lingwa u l-verżjoni fil-pront.
  • [ ] Niġbor u nittestja kull biċċa prodotta qabel ma nassemblaha.
  • [ ] Nikkonferma kull dipendenza ġdida li tipproponi l-AI billi nivverifika l-eżistenza u n-neċessità tagħha.
  • [ ] Niċċekkja li l-kodiċi ġġenerat jaqbel mal-istil tal-proġett.