Faida:
- Uwezo wa kuandika kazi, madarasa na moduli kwa AI na ufafanuzi wazi wa pato na vikwazo
- Uwezo wa kutumia AI kama mshirika wa programu jozi na maendeleo hatua kwa hatua, katika vipande vidogo, vinavyoweza kuthibitishwa.
- Uwezo wa kupata makosa ya mantiki na makali kwa kuunda nambari inayotokana na AI na kuiendesha na mifano ndogo.
Oanisha programu ni wakati watengenezaji wawili wanafanyia kazi tatizo moja, huku mmoja akiandika na mwingine akisahihisha. Kuweka msimbo na AI ni toleo la dijiti la uhusiano huu huu: unaweka mwelekeo, vikwazo na vigezo vya kukubalika; AI hutoa rasimu ya haraka; Unathibitisha kila hatua kwa kuikusanya na kuijaribu. Mtego mkubwa hapa ni kuwaambia AI "niandikie programu hii tangu mwanzo hadi mwisho" na ukubali kwa upofu kizuizi cha mistari 200. Programu nzuri ya jozi huendelea kwa hatua ndogo: kila hatua inapaswa kueleweka, inayoweza kujaribiwa na kubadilishwa.
Katika kitengo hiki utajifunza jinsi ya kuchapisha vitendaji, madarasa na moduli na mkataba wa wazi wa pembejeo-pato; Jinsi ya kuongoza AI hatua kwa hatua; na tutaona jinsi ya kupata makosa ya mantiki na makali kwa kutumia nambari inayotoa na mifano ndogo. Lengo sio kasi, lakini kasi iliyothibitishwa.
Dhana: Mkataba wa ingizo na pato: Ufafanuzi wazi wa ingizo gani la kukokotoa huchukua na matokeo na tabia ya hitilafu inayoahidi. Kesi ya ukingo: Ingizo ambalo si la kawaida lakini linaweza kutokea (tupu, sifuri, hasi, kubwa sana, batili). Ukuaji wa Kuongezeka: Kuendelea na vipande vidogo, vya kufanya kazi na kuhalalisha kila hatua.
Msimbo wa Uchapishaji na Mkataba wa Mtandao
Msingi wa nambari ya ubora ni kufafanua haswa "unachotaka" kabla ya kuanza kazi. Unapoandika chaguo za kukokotoa kwa AI, ipe vitu vitano: lugha na toleo, aina na maana za ingizo, matokeo, hali ya makosa, na vikwazo (utendaji, marufuku ya maktaba ya nje, mtindo). Hii inazuia AI kutoka kwa kubahatisha.
- Andika mkataba. Ingizo, pato, kosa, kizuizi.
- Uliza kitengo kidogo. Shughuli yenye jukumu moja; Sio moduli kubwa.
- Omba kizuizi cha majaribio. Ongeza sampuli chache za kukimbia/jaribio karibu na msimbo.
- Kukusanya na kukimbia. Ijaribu kwa vipochi vya makali, thibitisha matokeo kwa jicho.
- Nenda kwa hatua inayofuata. Mara baada ya kipande kuthibitishwa, jenga juu yake.
Kidokezo cha chaguo la kukokotoa: "Andika chaguo za kukokotoa za TypeScript 5. Kusudi: hesabu jumla ya kiasi cha bidhaa kwenye kikasha cha ununuzi. Ingizo: {bei: nambari, kiasi: nambari }[] safu. Toleo: nambari (jumla). Kanuni: tupa Hitilafu ikiwa kiasi au bei ni hasi; rudisha 0 kwa safu tupu; tumia nambari ya jaribio la desimali chini ya 2. Usiongeze nambari ya jaribio la desimali chini ya 2. (kawaida, tupu, idadi hasi, bei ya desimali, bidhaa moja)."
Kuongoza AI kama Jozi
Maendeleo mazuri katika upangaji programu jozi ni mazungumzo badala ya ombi moja kubwa. Kwanza, omba mifupa na uikimbie; kisha ongeza hali ya makali; kisha urekebishe mdudu. Mbinu hii huweka msimbo kueleweka na hukuweka katika udhibiti katika kila hatua.
Kidokezo cha maendeleo ya ongezeko: "Tutaandika msomaji anayesoma faili ya CSV na kubadilisha mistari kuwa kitu. Twende HATUA KWA HATUA, tuendelee hadi hatua inayofuata bila mimi kuthibitisha kila hatua. Hatua ya 1: andika tu kiunzi kinachogawanya faili katika mistari na kutenganisha mstari wa kichwa. Usiongeze ubadilishaji wa aina au ushughulikiaji wa hitilafu bado.
Eleza na uhalalishe kidokezo cha msimbo: "Eleza kazi uliyoandika hivi punde, si mstari kwa mstari, lakini uamuzi kwa uamuzi: ni uamuzi gani wa kubuni uliyofanya na kwa nini, ni kesi gani ya makali ulishughulikia na jinsi gani, ni kesi gani uliondoa kwa makusudi? Orodhesha mawazo 3 katika kanuni ambayo sipaswi kukosa."
Kidokezo: Usikubali msimbo unaozalishwa na AI bila kuuelewa. "Nifafanulie hili, ulifanya mawazo gani?" Swali zote mbili hufichua makosa yaliyofichwa na hukuruhusu kutetea msimbo huo, kwani msimbo unabaki kuwa jukumu lako. Kuweka msimbo ambao hauelewi katika uzalishaji ni kama kutuma mkataba bila kuutia saini.
Uhamasishaji dhaifu / Uhamasishaji Wenye Nguvu
DHAIFU:"Andika kitendakazi cha kupanga."(Tokeo: ni lugha gani, ni nini kinachopangwa, ni thabiti, kikwazo cha utendaji ni nini, msimbo ambao haueleweki na pengine hauendani na mahitaji.)STRONG:"Kwa Java 17, andika mbinu ambayo hupanga kitu cha Orodha<Mfanyakazi> kwanza kulingana na idara (alfabeti), kisha kwa mshahara (kushuka kwa orodha mpya). USIREJESHE orodha ya mwisho. USIFIKIE orodha ya awali. utata wa njia katika mstari wa maoni bainisha ongeza kizuizi kikuu cha majaribio na sampuli 4."
Agizo lenye nguvu; Inajumuisha kigezo cha kupanga (ngazi mbili), sheria ya athari (kubadilisha asili), tabia mbaya na matarajio ya jaribio. Bila maelezo haya, AI hutoa suluhisho linalowezekana lakini lisilo sahihi; kwa mfano inaweza kuharibu orodha asili na hii itasababisha hitilafu ya kimya mahali pengine.
Uthibitishaji kwa Kesi za Kingo na Sampuli Ndogo
Nambari inayofanya kazi katika hali ya kufurahisha sio msimbo sahihi. Lazimisha kwa uangalifu kila kazi inayozalishwa:
Aina ya kesi ya makali
sampuli ya pembejeo
tabia inayotarajiwa
pembejeo tupu
Safu/kamba tupu
Sio kosa, matokeo tupu ya kimantiki
Sifuri/hasi
0, -1
Tabia iliyofafanuliwa na sahihi
thamani kubwa
Mamilioni ya rekodi
Udhibiti wa kufurika/utendaji
null/haijafafanuliwa
kukosa nafasi
Hitilafu iliyodhibitiwa au chaguo-msingi
Nakala/isiyo ya kawaida
kurudia, kurudi nyuma
matokeo sahihi
Kesi Ndogo
Kesi 1 - Hitilafu ya kuzungusha kimya. AI inaandika kazi ambayo inakusanya pesa na aina za decimal (kuelea); 0.1 + 0.2 inatoa 0.30000000000000004. Hitilafu hutatuliwa wakati mhandisi anaongeza sheria "Mzunguko hadi tarakimu 2 na utumie senti nzima". Sheria ya mistari 3 huzuia maelfu ya senti ya tofauti katika upatanisho wa kila mwezi.
Kesi ya 2 - Mtego wa athari. AI huandika njia ambayo "inapanga" orodha, lakini inarekebisha orodha asili mahali pake. Tabia isiyotarajiwa hutokea kwa sababu moduli nyingine hutumia orodha sawa. Iwapo kikwazo cha "mabadiliko asilia" kilikuwa kwenye upesi, kosa halingetokea kamwe; hunaswa katika ukaguzi wa msimbo na huzuia utatuzi wa saa 2.
Kesi ya 3 - Mapato hatua kwa hatua. Msanidi huchapisha moduli ya uingizaji ya mistari 150 mara moja; Anapopata kosa, hawezi kupata lilikotoka. Msanidi mwingine hugawanya kazi sawa katika hatua 5 ndogo, hujaribu kila hatua kwa dakika 2 na hupata kosa mara moja katika hatua ya 3.
Makosa ya kawaida
- Kuchapisha vitalu vikubwa katika ombi moja. Msimbo hatari ambao ni vigumu kuelewa na utatuzi huzaliwa.
- Kuuliza kanuni bila kutoa mkataba. Ikiwa hitilafu ya pembejeo-pato ni ya kutatanisha, AI itakisia na kukosea.
- Jaribu tu hali ya kufurahisha. Ikiwa ingizo tupu, tupu, hasi na kubwa haijajaribiwa, hitilafu itaachwa kwa uzalishaji.
- Kukubali bila kuelewa. Kanuni usiyofichua ni deni ambalo huwezi kulitetea.
- Kupuuza aina nyeti kama vile madhara na pesa/tarehe. Pesa za kuelea zilizo na historia isiyo na wakati ni chanzo cha kawaida cha makosa.
Kwa muhtasari
Nambari ya kuandika na AI ni upangaji wa programu jozi wenye nidhamu: mkataba wazi, hatua ndogo, jenga na jaribu kwa kila hatua. Kutoa quartet ya pembejeo-output-error-constraint kutoka mwanzo huamua ubora wa msimbo. Kuelezea msimbo unaozalisha na kulazimisha kwa kesi za makali huleta kwa uso makosa yaliyofichwa chini ya hali ya furaha. Chanzo cha kasi sio kukubalika kipofu; ni rasimu ya haraka pamoja na uthibitishaji wa haraka.
Jukumu la maombi
Chagua kitendakazi kidogo lakini halisi (k.m. jumla ya kikapu, tofauti ya tarehe, uchanganuzi wa maandishi). Chapisha kwa kutumia arifa ya utendakazi iliyoainishwa; Ongeza angalau matukio 5 ya majaribio karibu nayo. Tekeleza msimbo na ujaribu kesi 5 za makali kwa uangalifu, ukitumia jedwali kama mwongozo. Pata hitilafu katika angalau kipochi kimoja (ikiwa sivyo, tengeneza ingizo jipya ili kulazimisha utendakazi), irekebishe ukitumia AI, na uthibitishe kwa kukagua tena kwamba urekebishaji ulifanya kazi.
orodha ya ukaguzi
- [ ] Niliandika mkataba unaojumuisha pembejeo, matokeo, makosa na vikwazo.
- [ ] Nilitoa nambari kwa hatua ndogo badala ya kizuizi kimoja kikubwa.
- [ ] Niliongeza kizuizi cha majaribio/sampuli karibu na msimbo.
- [ ] Nimejaribu kwa uangalifu angalau visa 5 vya makali.
- [ ] Nilielezea kanuni kwa AI na kukagua mawazo yake.
- [ ] Nilirekebisha hitilafu iliyopatikana na kuthibitisha kurekebisha kwa kujaribu tena.