Bölüm 3 / 12

AI bilen kodlaşdyrmak we jübütlemek

Girdeji:

  • AI-e funksiýalary, synplary we modullary anyk giriş-çykyş we çäklendiriji kesgitlemeler bilen ýazmak ukyby
  • AI-ni jübüt programmirleme hyzmatdaşy hökmünde ulanmak we kiçijik, barlap boljak böleklerde ädimme-ädim öňe gitmek
  • AI tarapyndan döredilen kody düzmek we ownuk mysallar bilen işletmek arkaly logika we gyradaky ýalňyşlyklary tutmak ukyby

Jübüt programmirlemek, iki işläp düzüjiniň şol bir mesele üstünde işlemegi, biri ýazylmagy, beýlekisi täzeden gözden geçirilmegi. AI bilen kodlaşdyrmak bu gatnaşyklaryň sanly görnüşi: ugry, çäklendirmeleri we kabul etmegiň ölçeglerini kesgitleýärsiňiz; AI çalt taýýarlaýar; Her ädimiňi düzmek we synagdan geçirmek arkaly barlaýarsyň. Bu ýerdäki iň uly duzak, AI-e “maňa bu programmany başdan ahyryna çenli ýazyň” we 200 setirli bloky kör kabul etmekdir. Gowy jübüt programmirlemek ownuk ädimlerde dowam edýär: her ädim düşnükli, synagdan geçirilýän we tersine bolmaly.

Bu bölümde, giriş-çykyş şertnamasy bilen funksiýalary, synplary we modullary nädip çap etmelidigini öwrenersiňiz; AI-ä ädimme-ädim nädip ýol görkezmeli; we kiçijik mysallar bilen öndürýän koduny işledip, logika we gyradaky ýalňyşlyklary nädip tutmalydygyny göreris. Maksat tizlik däl, barlanylan tizlik.

Düşünjeler: Giriş-çykyş şertnamasy: Funksiýanyň haýsy girişi alýandygyny we haýsy çykyş we ýalňyşlyk häsiýetini wada berýändigini anyk kesgitlemek. Gyrasy: Adaty däl, ýöne aslynda bolup bilýän giriş (boş, nol, negatiw, gaty uly, null). Ösüş ösüşi: Kiçijik, iş bölekleri bilen dowam etmek we her ädimiňizi tassyklamak.

Netijeli şertnama bilen çap kody

Hil kodunyň esasy, işe başlamazdan ozal "isleýän zadyňyzy" kesgitlemekdir. AI-e funksiýa ýazanyňyzda oňa bäş zady beriň: dil we wersiýa, giriş görnüşleri we manylary, çykyş, ýalňyşlyk şertleri we çäklendirmeler (öndürijilik, daşarky kitaphananyň gadaganlygy, stili). Bu AI-ni çaklamagyň öňüni alýar.

  1. Şertnamany ýazyň. Giriş, çykyş, ýalňyşlyk, çäklendirme.
  2. Kiçijik bölüm soraň. Responsibilityeke-täk jogapkärçilikli wezipe; Bu ullakan modul däl.
  3. Synag blokyny soraň. Koduň gapdalynda birnäçe synag işlerini / synaglaryny goşuň.
  4. Düzmek we işletmek. Gyrasy bilen synap görüň, çykyşy göz bilen barlaň.
  5. Indiki ädime geçiň. Bir eser tassyklanandan soň, onuň üstünde guruň.

Şertnama baglaşylan funksiýa: "TypeScript 5. üçin bir funksiýa ýazyň. Maksady: söwda sebedindäki zatlaryň umumy mukdaryny hasaplaň. Giriş: {bahasy: san, mukdar: san} [] massiw. Çykyş: san (jemi) element). ”

AI-ni jübüt hökmünde görkezmek

Jübüt programmirlemekde gowy ösüş, bir uly haýyş däl-de, gepleşik. Ilki bilen skeleti soraň we işlediň; soň bir gyrasy ýagdaý goşuň; soň bir näsazlygy düzediň. Bu çemeleşme kody düşnükli saklaýar we her ädimde sizi gözegçilikde saklaýar.

Ösüşiň öňe gidişligi: "CSV faýly okaýan we setirleri obýekte öwürýän okyjy ýazarys. Geliň, her ädimimi tassyklamazdan indiki ädime geçeliň. 1-nji ädim: faýly setirlere bölýän we sözbaşy setirini bölýän skelet ýazyň. Gysgaça düşündiriş beriň.

Kod soragyny düşündiriň we esaslandyryň: "justaňy ýazan funksiýaňyzy setir boýunça däl-de, karar bilen düşündiriň: haýsy dizaýn kararyny kabul etdiňiz we näme üçin, haýsy gyrada işlediňiz we nädip, haýsy ýagdaýlary bilgeşleýin aýyrdyňyz? Kodda 3 çaklamany sanaň."

Maslahat: AI-den döredilen kody düşünmän kabul etmäň. "Muny maňa düşündiriň, näme çaklamalar etdiňiz?" Sorag ikisi hem gizlin ýalňyşlyklary ýüze çykarýar we kod goramaga mümkinçilik berýär, sebäbi kod siziň jogapkärçiligiňiz bolup galýar. Düşünmedik koduňyzy önümçilige goýmak, şertnama gol çekmezden ibermek ýalydyr.

Gowşak gyssagly / güýçli teklip

Gowşak: "Saýlama funksiýasyny ýazyň." (Netije: haýsy dil, haýsy tertipleşdirilse, durnuklymy, ýerine ýetiriş çäklendirmesi näme, düşnüksiz we belki talaplara laýyk gelmeýän kod.) Güýçli: "Java 17 üçin sanawy ilki bilen bölüm (elipbiý boýunça) tertipleşdiriň, soň bolsa aýlyk bölümi (aşak düşýän). Usulyň çylşyrymlylygyny düşündiriş setirinde düşündiriň, 4 sany nusga bilen esasy synag blokuny goşuň. "

Güýçli haýyş; Sortirleme ölçeglerini (iki derejeli), ters täsir düzgünini (asyl nusgasyny çalyşmak), manysyz özüni alyp barşy we synaga garaşmagy öz içine alýar. Bu jikme-jiklikler bolmasa, AI dogry, ýöne nädogry çözgüt çykarýar; meselem asyl sanawy zaýalap biler we bu başga bir ýerde sessiz ýalňyşlyga sebäp bolar.

Gyradaky ýagdaýlar we kiçi nusgalar bilen barlamak

Bagtly ssenariýada işleýän kod dogry kod däl. Öndürilen her bir funksiýany aňsatlyk bilen mejbur ediň:

Gyranyň görnüşi

nusga giriş

garaşylýan özüni alyp baryş

boş giriş

Boş massiw / setir

Erroralňyşlyk däl, logiki boş netije

Nol / negatiw

0, -1

Özüňi alyp barşyň kesgitlenen we dogry

uly gymmatlyk

Millionlarça ýazgy

Artyk / ýerine ýetiriş gözegçiligi

null / kesgitlenmedik

boş ýer

Dolandyrylýan säwlik ýa-da deslapky

Dublikat / adaty däl

gaýtalanýan, ters tertip

dogry netije

Kiçijik ýagdaýlar

1-nji hadysa - Ümsüm tegelek ýalňyşlyk. AI onluk (ýüzýän) görnüşler bilen pul ýygnaýan funksiýa ýazýar; 0,1 + 0,2 0.30000000000000004 berýär. Thealňyşlyk inerener "2 belgä tegelek we ähli galamlary ulanyň" düzgünini goşanda çözülýär. 3 setirli düzgün, aýda barlyşykda müňlerçe teňňäniň öňüni alýar.

2-nji hadysa - Täsir duzagy. AI sanawy “tertipleýän”, ýöne asyl sanawyny ýerinde üýtgedýän usul ýazýar. Garaşylmadyk hereket, başga bir modul şol bir sanawy ulanýandygy sebäpli ýüze çykýar. "Asyl üýtgetmek" çäklendirmesi gyssagly bolsa, ýalňyşlyk hiç haçan ýüze çykmazdy; kod gözden geçirilýär we 2 sagat düzedişiň öňüni alýar.

3-nji waka - ädimme-ädim girdeji. Bir dörediji birbada 150 setirli import modulyny çap edýär; Aalňyşlyk tapsa, nireden gelendigini tapyp bilmez. Beýleki bir dörediji şol bir eseri 5 kiçi basgançaga bölýär, her ädimini 2 minutda synagdan geçirýär we ýalňyşlygy derrew 3-nji ädimde ele alýar.

Adaty ýalňyşlyklar

  • Uly bloklary bir haýyşda çap etmek. Düşünmek we düzetmek kyn bolan töwekgelçilikli kod dünýä indi.
  • Şertnama bermezden kod soramak. Giriş-çykyş-ýalňyşlyk düşnüksiz bolsa, AI çak eder we ýalňyş bolar.
  • Diňe bagtly ssenariýany synap görmek. Boş, null, negatiw we uly giriş synalmasa, ýalňyşlyk önümçilige galar.
  • Düşünmezden kabul etmek. Açmajak koduňyz, gorap bilmeýän karzyňyzdyr.
  • Sidearamaz täsirleri we pul / senesi ýaly duýgur görnüşlere ähmiýet bermezlik. Wagtlaýyn taryhy bolan ýüzýän pullar ýalňyşlygyň nusgawy çeşmesidir.

Gysgaça

AI bilen kod ýazmak tertipli jübüt programmirleme: anyk şertnama, kiçi ädimler, her ädimde gurmak we synag etmek. Giriş-çykyş-ýalňyşlyk-çäklendiriji kwartetiň başyndan berilmegi koduň hilini kesgitleýär. Öndürýän koduny düşündirmek we gyralary bilen mejbur etmek, bagtly ssenariýada gizlenen ýalňyşlyklary ýüze çykarýar. Tizlik çeşmesi kör kabul etmek däl; çalt garalama we çalt barlamak.

Programma meselesi

Kiçijik, ýöne hakyky funksiýany saýlaň (meselem, sebetiň jemi, senäniň tapawudy, tekstiň derňewi). Şertnamalaşdyrylan funksiýany ulanyp çap etmek; Iň azyndan 5 synag ssenarisini goşuň. Tablisa gollanma hökmünde ulanyp, kody işlediň we 5 gyrasy ýagdaýy aňsatlyk bilen synap görüň. Iň bolmanda bir gyrada bir näsazlyk tapyň (ýok bolsa, funksiýany güýçlendirmek üçin täze giriş düzüň), ony AI bilen düzediň we düzedişiň işleýändigini tassyklaň.

gözegçilik sanawy

  • [] Giriş, çykyş, ýalňyşlyklar we çäklendirmeleri öz içine alýan şertnama ýazdym.
  • [] Kody bir uly blokyň ýerine kiçijik ädimlerde döretdim.
  • [] Koduň gapdalynda synag / sample run blok goşdum.
  • [] Iň azyndan 5 gyrasy hadysany aňsatlyk bilen synagdan geçirdim.
  • [] Kody AI-e düşündirdim we çaklamalaryny gözden geçirdim.
  • [] Tapylan ýalňyşlygy düzedip, retest arkaly düzedişi tassykladym.