Birlik 2 / 12

Skript yaratish va avtomatik yakunlash

Daromadlar:

  • Inline bajarish bilan vazifa turini tuzatish uchun chat rejimini xaritalash qobiliyati
  • Kirish/chiqarish shartnomalari, chekka holatlar va uslub cheklovlarini o'z ichiga olgan kuchli ishlab chiqarish ko'rsatmalarini yozish qobiliyati
  • Birlashtirishdan oldin yaratilgan kodni va har qanday yangi taklif qilingan bog'liqlikni tekshirish qobiliyati

Ishlab chiquvchining sun’iy intellekt bilan birinchi aloqa nuqtasi ko‘pincha avtomatik to‘ldirish bo‘ladi – bu xususiyat siz yozganingizda keyingi qatorni taklif qiladi – yoki chat oynasida “bu funksiyani yozing” deb aytadi. Ularning ikkalasi ham bir xil dvigateldan foydalanadi, lekin har xil fanlarni talab qiladi. Ushbu bo'limda biz kod ishlab chiqarishni tasodifiy "yozish" dan chiqishi prognoz qilinadigan va tekshirilishi mumkin bo'lgan muhandislik bosqichiga aylantiramiz.

Maqsad, AIni matn terish mashinangizni tezlashtiradigan vositadan siz o'rnatgan cheklovlar doirasida ishlaydigan shogirdga aylantirishdir. Yaxshi yo'naltirilgan shogird vaqtni tejaydi; Yo'l-yo'riqsiz shogird keyinchalik tozalashingiz kerak bo'lgan tartibsizlikni keltirib chiqaradi.

Ikkita foydalanish rejimi: Inline tugatish va suhbat

Inline tugallash muharriringizda yozishingiz bilan boshlanadi; Siz funktsiya imzosi yoki sharh qatorini kiritasiz va u qolganlarini taklif qiladi. Bu tezlik uchun juda yaxshi, lekin u tor kontekstga ega: u faqat yaqin hududdagi kodni ko'radi. Shuning uchun fikringizni izohda aniq yozsangiz yaxshi ishlaydi. Misol uchun, //foydalanuvchi elektron pochta manzilini tasdiqlang, agar noto'g'ri izoh bo'lsa, ValidationError yuboring, quyidagi taklifni sezilarli darajada yaxshilaydi.

Suhbat rejimi kattaroq va tuzilgan vazifalar uchun mo‘ljallangan: “Ushbu sinfga sahifalash qo‘shish”, “Ushbu xizmat interfeysini ajratib olish”. Bu erda siz rol, kontekst va format berish hashamatiga egasiz. Umumiy qoida: kichik va tezkor vazifalarni bajarish, fikrlash va tuzilishni talab qiladigan vazifalar uchun suhbat.

Maslahat: "Tab" bilan yakunlash taklifini ko'r-ko'rona qabul qilmang. Tavsiya etilgan qatorni bir soniya o'qing; Noto'g'ri o'zgaruvchi nomi yoki teskari holat ko'pincha bu erdan oqadi.

Niyatni kodga tarjima qilish qadamlari

  1. Shartnomani aniqlang. Funktsiyaning kirish, chiqish va xato xatti-harakatlari qanday? "E-pochtani oling, agar to'g'ri bo'lsa, normallashtiring, noto'g'ri bo'lsa, xato qiling" kabi.
  2. Cheklovlarni ayting. Tashqi qaramlikni ishlatmaysizmi? Muayyan uslublar bo'yicha qo'llanma? Ishlash chegarasi bormi?
  3. Misol keltiring. Kirish-chiqish juftligi (“ali@x.com → to‘g‘ri, ali@ → xato”) modelning niyat haqidagi tushunchasini bashorat qilishdan aniqlikka o‘tkazadi.
  4. Kichik qismlarni so'rang. Bitta vazifa, bitta mas'uliyat. Keyin keyingisiga o'ting.
  5. Yaratilgan kodni o'qing va ishga tushiring. Kompilyatsiya + tez qo'lda urinish eng arzon kafolat bosqichidir.

Uchta mini korpus

1-holat - Sharhga asoslangan ishlab chiqarish aniqlikni oshiradi. Ishlab chiquvchi avval bo'sh tana bilan sanani tahlil qilish funksiyasini so'radi va 3 turda to'g'ri natijaga erishdi. Ikkinchi urinishda funktsiyani 4 qatorli izoh bilan (qabul qilingan formatlar, vaqt mintaqasi qoidasi, xato holati) aniqlab, so'raganimda, birinchi bosqichda ishlagan kod keldi. Xuddi shu model, xuddi shu kun; farq faqat niyatning aniqligi edi.

2-holat - Versiyani ko'rsatmaslik qimmatga tushadi. Bir jamoa Node.js uchun ishlab chiqarilgan koddagi fs.promises o‘rnini bosuvchi eski qayta qo‘ng‘iroqqa asoslangan API bilan kurashdi. So'rovga "Use Node, ESM, async/wait" qatori qo'shilganda, ishlab chiqarish birinchi marta loyihaga amal qildi; Tuzatish uchun sarflangan o'rtacha 12 daqiqa qayta tiklandi.

3-holat - Qozon kodidagi haqiqiy daromad. Mikroservis uchun 6 ta yangi DTO (Ma'lumotlarni uzatish ob'ekti — qatlamlar o'rtasida ma'lumotlarni olib yuruvchi oddiy ma'lumotlar klassi) va ularni tekshirish qoidalari kerak edi. Ilgari taxminan 90 daqiqalik qo'l mehnati AI tomonidan ishlab chiqarilgan va ko'rib chiqilganda 35 daqiqaga qisqartirildi; Kod takrorlanishi yuqori va naqsh aniq bo'lgani uchun, AI bu erda eng samarali sohada ishladi.

To'rt nusxa ko'chirish shablonlari

Shartnoma asosidagi funktsiyani yaratish:

Rol: Siz tirishqoq {{language}} ishlab chiquvchisiz.Funktsiya shartnomasi:- Ism: {{nom}}- Kirish: {{turlar va ularning maʼnosi}}- Chiqish: {{turi va maʼnosi}}- Xato holati: {{qachon tashlanadi/qaytariladi}}Cheklovlar: {{tashqi bogʻliqliklar / uslublar / ishlash}}Misollar: {}_1-chiqish {{entry_2}} -> {{error_2}}Avval imzo + qisqa reja, keyin kod bering. Yozish testlari, faqat funktsiya.

Mavjud uslubga mos kelish uchun (kod bazasiga moslash):

Quyida loyihamizdan misol funksiyasi keltirilgan; Bu yerda nomlash, xatolarni qayta ishlash va sharhlash uslubini bilib oling. {{new_task}} funksiyasini SAME uslubi bilan yozing. Misol: {{current_code}}

Skeletdan to plombagacha (stub → amalga oshirish):

Izohlardagi TODOlar bo'yicha quyidagi funktsiya skeletini to'ldiring. Imzo va qaytish turini O'ZGARTIRING. Mavjud bo'lmagan yordamchi funksiyani yaratmang; agar kerak bo'lsa, "bu yordamchi kerak" deb xabar bering. {{skelet_kod}}

Muqobil ilovalarni taqqoslash:

{{task}} uchun 2 xil dasturni bering: (a) o'qishga ustuvorlik berish, (b) ishlashga ustuvorlik berish. Har birining ostiga “qachon afzalroq” degan 1 ta jumla yozing.

Zaif taklif / Kuchli taklif

Zaif: "Menga elektron pochta orqali tekshirish funksiyasini yozing."
Kuchli: "TypeScript 5, faqat standart kutubxona. IsValidEmail(kiritish: string): boolean yozing. Boʻshliqlarni qisqartiring, katta-kichik harflarni sezmaydigan qilib qoʻying, a@b.co toʻgʻri, a@, @b.co, boʻsh satr yaroqsiz. Agar siz regexdan foydalanmoqchi boʻlsangiz, haddan tashqari murakkab boʻlmang; izoh qoʻshing.2 qator.”

Kuchli versiya; Til, versiya, imzo, chekka holatlar va uslub cheklovini qaytaradi. Shunday qilib, yaratilgan kod ham ishlaydi va loyihangizga mos keladi.

Yondashuv

Qachon foydalanish kerak

Diqqat

Inline to'ldirish

Oqimdagi kichik qo'shimchalar

Taklifni o'qimasdan qabul qilmang

Chatda shartnoma asosida ishlab chiqarish

Yangi funksiya/sinf

Misol va chekka holatni keltiring

Uslub namunasi bo'yicha ishlab chiqarish

Mavjud kodga qo'shilmoqda

Joriy namuna kodini tanlang

skeletni to'ldirish

Imzo belgilangan, asosiy qismi boʻsh

Imzoni o'zgartirish

Kodni takrorlash va qaramlik tuzog'i

AI tez-tez ishini osonlashtirish uchun yangi kutubxonani tavsiya qiladi. Ba'zida bu to'g'ri bo'ladi, ba'zida u loyihangizga keraksiz qaramlikni qo'shadi yoki mavjud bo'lmagan paketni taklif qiladi (gallyutsinatsiya). Qoida: har bir yangi qaramlikni tasdiqlaysiz. Paket haqiqatda mavjudligini, saqlanishini va tegishli litsenziyaga ega ekanligini tekshirmasdan uni loyihaga qo'shmang. Ko'pincha loyihada bo'lgan yordamchi yangi paketdan yaxshiroqdir.

Diqqat: AI tomonidan taklif qilingan import qatorlarini ko'rib chiqing. Mavjud bo'lmagan paket nomi ("imlo-squatting" deb ataladigan soxta paketlarga ham o'xshab qolishi mumkin) kompilyatsiyani buzadi va xavfsizlikka xavf tug'diradi.

Umumiy xatolar

  • Model tomonidan belgilangan imzoga ega bo'lish. Agar siz kirish/chiqish turlarini tuzatmasangiz, har bir ishlab chiqarishda boshqa imzo keladi va integratsiya qiyinlashadi.
  • Kengaytirilgan holatlar haqida gapirmasa ham bo'ladi. Bo'sh kiritish, null, manfiy raqam, juda katta qiymat — agar siz ularni ko'rsatmasangiz, model chekkalarni o'tkazib yuborgan holda "baxtli yo'l" ni yozadi.
  • Taklifni sinovdan o'tkazmasdan birlashtirish. Ishlayotgandek ko'rinadigan kod uning ishlashini anglatmaydi.
  • Keraksiz qaramlikni qabul qilish. Bitta layner uchun butun kutubxonani qo'shish texnik qarzni keltirib chiqaradi.
  • Uslubning nomuvofiqligi. Loyihaning qolgan qismidan farqli nomlash va xatolarga ishlov berish kod bazasini yamoq qiladi.

Xulosa

Niyatni aniq shartnomaga aylantirsangiz, kod yaratish kuchli. Kichkina, oqim ichidagi vazifalar va suhbatda tuzilmani o'rnatadigan vazifalar uchun inline bajarishdan foydalaning. Siz kiritish/chiqarish turlarini, chekka holatlar, versiya va uslubni belgilaysiz; Modelga misol keltiring; har bir yangi bog'liqlikni tekshirish; va ishlab chiqarilgan har bir asarni choping va o'qing. AI formulali, takrorlanuvchi kodda eng yaxshi natija beradi - uni o'sha erda, siz o'rnatgan chegaralar ichida boshqaring.

Ilova vazifasi

Loyihangizdan yozishingiz kerak bo'lgan haqiqiy kichik funktsiyani tanlang. Avval uni “shartnomaga asoslangan funksiyalarni yaratish” shablonida kiritish/chiqarish turlari, ikkita chekka holatlar va uslub cheklovi bilan AIga chop eting. Yaratilgan kodni kompilyatsiya qiling va uni ikki xil kirish bilan sinab ko'ring. Keyin yana bir xil funktsiyani so'rang, bu safar hech qanday kontekstsiz "menga buni yozing" va ikkita chiqishni satr bilan taqqoslang: qaysi chekka holatlar o'tkazib yuborilgan, qancha tuzatishlar kerak edi?

nazorat ro'yxati

  • [ ] Inline tugallangan chat rejimidan qayerda foydalanishni bilaman.
  • [ ] Funktsiyani yaratishda kiritish/chiqarish shartnomasi va chekka holatlarni aniqlayman.
  • [ ] Men taklifga til va versiya maʼlumotlarini qoʻshishni odat qilib oldim.
  • [ ] Men har bir ishlab chiqarilgan qismni yig'ishdan oldin uni tuzaman va sinab ko'raman.
  • [ ] Men AI taklif qilgan har bir yangi qaramlikni uning mavjudligi va zarurligini tekshirish orqali tasdiqlayman.
  • [ ] Yaratilgan kod loyiha uslubiga mos kelishini tekshiraman.