Fitimet:
- Aftësia për të hartuar modalitetin e bisedës për të korrigjuar llojin e detyrës me përfundimin e linjës
- Aftësia për të shkruar kërkesa të fuqishme prodhimi që përfshijnë kontrata hyrëse/dalëse, rastet e skajeve dhe kufizimet e stilit
- Aftësia për të vërtetuar kodin e krijuar dhe çdo varësi të re të propozuar përpara bashkimit
Pika e parë e kontaktit të një zhvilluesi me AI është shpesh plotësimi automatik - një veçori që sugjeron rreshtin tjetër ndërsa shkruani - ose duke thënë "shkruani atë funksion" në një dritare bisede. Ata të dy përdorin të njëjtin motor, por kërkojnë disiplina të ndryshme. Në këtë njësi, ne e transformojmë gjenerimin e kodit nga një "shkrim" i rastësishëm në një hap inxhinierik, prodhimi i të cilit është i parashikueshëm dhe i verifikueshëm.
Qëllimi është ta ktheni AI nga një mjet që përshpejton makinën tuaj të shkrimit në një nxënës që punon brenda kufizimeve që keni vendosur. Një nxënës i udhëhequr mirë kursen kohë; Një nxënës i padrejtuar krijon një rrëmujë që duhet ta pastroni më vonë.
Dy mënyra përdorimi: Përfundimi në linjë dhe biseda
Përfundimi inline hyn në lojë ndërsa shkruani në redaktorin tuaj; Ju shkruani një nënshkrim funksioni ose një linjë komenti dhe ai sugjeron pjesën tjetër. Është i shkëlqyeshëm për shpejtësinë, por ka një kontekst të ngushtë: sheh kodin vetëm në zonën e afërt. Kjo është arsyeja pse funksionon më mirë kur shkruani qartë qëllimin tuaj në një koment. Për shembull, emaili //validate i përdoruesit, hedh ValidationError nëse komenti i pavlefshëm përmirëson ndjeshëm sugjerimin e mëposhtëm.
Modaliteti i bisedës është për detyra më të mëdha dhe të strukturuara: "Shto faqezim në këtë klasë", "Nxjerr një ndërfaqe të atij shërbimi". Këtu keni luksin të jepni rol, kontekst dhe format. Rregulli i përgjithshëm është: përfundimi për detyra të vogla dhe rrjedhëse, biseda për detyra që kërkojnë mendim dhe strukturë.
Këshillë: Mos e pranoni verbërisht sugjerimin e plotësimit me "Tab". Lexoni rreshtin e sugjeruar për një sekondë; Një emër i gabuar variabli ose një gjendje e përmbysur më së shpeshti rrjedh nga këtu.
Hapat për të përkthyer qëllimin në kod
- Përcaktoni kontratën. Cila është sjellja e hyrjes, e daljes dhe e gabimit të funksionit? Si "Merr email, normalizo nëse është i vlefshëm, hedh gabim nëse është i pavlefshëm".
- Tregoni kufizimet. Nuk përdorni varësi të jashtme? Një udhëzues specifik stili? A ka një kufi të performancës?
- Jep një shembull. Një çift hyrje-dalje (“ali@x.com → valid, ali@ → gabim”) e zhvendos kuptimin e modelit për qëllimin nga parashikimi në saktësi.
- Kërkoni copa të vogla. Një funksion, një përgjegjësi. Pastaj kaloni te tjetra.
- Lexoni dhe ekzekutoni kodin e krijuar. Përpilimi + një përpjekje e shpejtë manuale është hapi më i lirë i sigurimit.
Tre Mini Rastet
Rasti 1 — Prodhimi i drejtuar nga komentet rrit saktësinë. Një zhvillues fillimisht kërkoi një funksion analizimi datash me një trup bosh dhe mori rezultatin e saktë në 3 raunde. Në përpjekjen e dytë, kur përcaktova funksionin me një koment me 4 rreshta (formatet e pranuara, rregulli i zonës kohore, kushti i gabimit) dhe e kërkova, erdhi kodi që funksionoi në raundin e parë. I njëjti model, e njëjta ditë; ndryshimi ishte vetëm qartësia e qëllimit.
Rasti 2 - Mos specifikimi i një versioni është i shtrenjtë. Një ekip luftoi me API-në e vjetër të bazuar në kthimin e thirrjeve që zëvendësoi fs.promises në kodin e prodhuar për Node.js. Kur linja "Përdor nyjen 20, ESM, async/prit" u shtua në prompt, prodhimi ndoqi projektin herën e parë; Mesatarja prej 12 minutash të shpenzuara për korrigjim u rivendos.
Rasti 3 - Fitimi real në kodin e pllakës së kazanit. Një mikroshërbim kërkonte 6 DTO të reja (Objekti i Transferimit të të Dhënave - një klasë e thjeshtë e të dhënave që bart të dhëna midis shtresave) dhe rregullat e tyre të vlefshmërisë. Ajo që dikur ishte afërsisht 90 minuta punë manuale u reduktua në 35 minuta kur u prodhua dhe rishikua nga AI; Meqenëse përsëritja e kodit është e lartë dhe modeli është i qartë, AI funksionoi në zonën e saj më efikase këtu.
Katër modele të kopjueshme
Gjenerimi i funksionit të bazuar në kontratë:
Roli: Jeni një zhvillues i zellshëm i {{gjuhës}}. Kontrata e funksionit:- Emri: {{emri}}- Hyrja: {{llojet dhe kuptimi i tyre}}- Dalja: {{lloji dhe kuptimi}}- Statusi i gabimit: {{çfarë hidhet/kthehet kur}}Kufizimet: {{pavarësi të jashtme/stilet/1-1}- {{output_1}}- {{entry_2}} -> {{error_2}}Jepni fillimisht nënshkrimin + planin e shkurtër, më pas kodin. Testet e shkrimit, vetëm funksionojnë.
Për të përputhur stilin ekzistues (përshtatuni me bazën e kodit):
Më poshtë është një funksion shembull nga projekti ynë; Mësoni emërtimin, trajtimin e gabimeve dhe stilin e komentimit këtu. Shkruani një funksion për {{new_detyra}} me të NJËJTIN stil. Shembull: {{current_code}}
Nga skeleti në mbushje (cung → zbatim):
Plotësoni skeletin e funksionit më poshtë sipas TODO-ve në komente. NDRYSHO llojin e nënshkrimit dhe kthimit. Mos bëni një funksion ndihmës që nuk ekziston; nëse është e nevojshme, më njoftoni "ky ndihmës është i nevojshëm". {{skelet_kod}}
Krahasimi alternativ i aplikacioneve:
Jepni 2 implementime të ndryshme për {{detyrë}}: (a) prioritizimi i lexueshmërisë, (b) prioritizimi i performancës. Shkruani 1 fjali "kur është e preferueshme" nën secilën prej tyre.
Prompt i dobët / Prompt i fortë
E dobët: "Më shkruaj një funksion verifikimi me email."
E fortë: "TypeScript 5, vetëm biblioteka standarde. Shkruaj isValidEmail(hyrje: varg): boolean. Shkurto hapësirat, bëje të pandjeshme, a@b.co është e vlefshme, a@, @b.co, vargu i zbrazët është i pavlefshëm. Nëse do të përdorësh regex, mos u bëj shumë komplekse 2 linjash komentesh."
Version i fuqishëm; Rikthen gjuhën, versionin, nënshkrimin, rastet e skajeve dhe një kufizim stili. Kështu, kodi i krijuar funksionon dhe përshtatet në projektin tuaj.
Qasje
Kur të përdoret
Kujdes
Përfundimi në linjë
Futje të vogla në rrjedhë
Mos e pranoni sugjerimin pa e lexuar
Prodhimi i bazuar në kontratë në chat
Funksion/klasë e re
Jepni shembullin dhe rastin e skajit
Prodhimi sipas modelit të stilit
Shtimi në kodin ekzistues
Zgjidhni kodin aktual të mostrës
mbushje skeleti
Nënshkrimi fiks, trupi bosh
Ndryshimi i nënshkrimit
Dyfishimi i kodit dhe kurthi i varësisë
AI shpesh rekomandon një bibliotekë të re për ta bërë më të lehtë punën e saj. Ndonjëherë kjo është e saktë, ndonjëherë shton një varësi të panevojshme në projektin tuaj ose sugjeron një paketë që nuk ekziston (një halucinacion). Rregulli: ju konfirmoni çdo varësi të re. Mos e shtoni në projekt pa verifikuar që paketa ekziston, mirëmbahet dhe ka licencën e duhur. Shumicën e kohës një ndihmës tashmë në projekt është më i mirë se një paketë e re.
Kujdes: Rishikoni linjat e importit të sugjeruara nga AI. Një emër paketë që nuk ekziston (i cili gjithashtu mund t'i ngjajë paketave të rreme të quajtura "typo-squatting") si prish kompilimin dhe përbën një rrezik sigurie.
Gabimet e zakonshme
- Duke pasur nënshkrimin e përcaktuar nga modeli. Nëse nuk rregulloni llojet hyrëse/dalëse, me çdo prodhim vjen një nënshkrim i ndryshëm dhe integrimi bëhet i vështirë.
- Për të mos përmendur rastet e skajeve. Input bosh, null, numër negativ, vlerë shumë e madhe — nëse nuk i specifikoni këto, modeli shkruan "rrugën e lumtur", duke kapërcyer skajet.
- Kombinimi i sugjerimit pa e provuar atë. Kodi që duket se funksionon nuk do të thotë se funksionon.
- Pranimi i varësisë së panevojshme. Shtimi i një biblioteke të tërë për një linjë të vetme krijon borxh teknik.
- Mospërputhja e stilit. Emërtimi i ndryshëm dhe trajtimi i gabimeve nga pjesa tjetër e projektit e bëjnë bazën e kodit të paqartë.
Në përmbledhje
Gjenerimi i kodit është i fuqishëm kur e përktheni qëllimin në një kontratë të qartë. Përdorni përfundimin e linjës për detyra të vogla, në rrjedhë dhe për detyra që krijojnë strukturë në bisedë. Ju specifikoni llojet e hyrjes/daljes, rastet e skajeve, versionin dhe stilin; Jepni një shembull të modelit; verifikoni çdo varësi të re; dhe vraponi dhe lexoni çdo pjesë të prodhuar. Inteligjenca artificiale shpërblehet më së miri në kodin formular, të përsëritur - ekzekutojeni atë aty, brenda kufijve që keni vendosur.
Detyra e aplikimit
Zgjidhni një funksion të vogël aktual nga projekti juaj që duhet të shkruani. Fillimisht printojeni atë në AI me shabllonin e "prodhimit të funksioneve të bazuara në kontratë", duke dhënë lloje të hyrjes/daljes, dy rastet e skajeve dhe një kufizim stili. Përpiloni kodin e krijuar dhe provojeni me dy hyrje të ndryshme. Pastaj pyesni përsëri të njëjtin funksion, këtë herë "më shkruaj këtë" pa asnjë kontekst dhe krahasoni dy daljet rresht pas rreshti: cilat rastet e skajeve u munguan, sa korrigjime kërkoheshin?
listë kontrolli
- [ ] Unë e di se ku të përdor modalitetin e bisedës me përfundimin në linjë.
- [ ] Përcaktoj kontratën hyrëse/dalëse dhe rastet e skajeve në gjenerimin e funksionit.
- [ ] E kam bërë zakon të shtoj informacionin e gjuhës dhe versionit në kërkesë.
- [ ] Unë përpiloj dhe testoj çdo pjesë të prodhuar përpara se ta montoj atë.
- [ ] Unë konfirmoj çdo varësi të re që AI propozon duke verifikuar ekzistencën dhe domosdoshmërinë e saj.
- [ ] Kontrolloj që kodi i krijuar përputhet me stilin e projektit.