Birlik 3 / 12

Kodni o'qish, tushuntirish va yangi kod bazasi bilan moslik

Daromadlar:

  • Xorijiy kodning bazaviy qatlamini AI yordamida qatlamma-qavat xaritalash va xususiyatni oxirigacha kuzatish qobiliyati
  • Murakkab funktsiyalarni bosqichma-bosqich tushuntirish va ma'lumotlar oqimini kuzatish qobiliyati
  • AI tavsifini gipoteza sifatida ko'rish va koddagi tanqidiy da'volarni tekshirish qobiliyati

Ishlab chiquvchilar kod yozishdan ko'ra kodni o'qiydilar. Yangi ishni boshlaganingizda, boshqa birovdan qolgan xizmatni o'z zimmangizga olganingizda yoki ochiq kodli kutubxonaga hissa qo'shsangiz, sizning birinchi vazifangiz "bu erda nima bo'lyapti?" degan savolga javob topishdan iborat. AI bu kashfiyot vazifasini haftalarga emas, balki soatlarga qisqartirishi mumkin - lekin faqat to'g'ri savollar va tekshirish refleksi bilan foydalanilganda.

Ushbu bo'limda biz AIdan "kod qo'llanmasi" kabi foydalanishni o'rganamiz: xorijiy kodlar bazasini xaritalash, murakkab funktsiyani oddiy tilga tarjima qilish, ma'lumotlar oqimini kuzatish va kutubxonadan qanday foydalanishni aniqlash. Bu erda oltin qoida shundaki, AIni tushuntirish gipotezadir; uni kodning o'zi bilan tasdiqlaysiz.

Nima uchun kod izohi kuchli, ammo xavfli?

LLM kod parchasini o'qish va uni inson tiliga tarjima qilishda juda yaxshi, masalan, "bu funksiya foydalanuvchining sessiya tokenini yangilaydi"; chunki u millionlab shunga o'xshash misollardan naqshlarni o'rgangan. Bu juda katta vaqtni tejaydi, ayniqsa uzoq va ichki funksiyalar bilan.

Mana xavf: model ba'zan kod aslida nima qilayotganini emas, balki nima qilayotganini aytadi. Agar o'zgaruvchining nomi isAdmin bo'lsa, lekin ichidagi mantiq teskari bo'lsa, model nomga qarashi va noto'g'ri xulosa chiqarishi mumkin. Shuning uchun, bayonotni tanqidiy qarorlaringiz uchun asos qilishdan oldin, tegishli satrlarda taxmin qilingan xatti-harakatlarni vizual tekshirishingiz kerak. Tavsif sizni kerakli joyga olib boradi; Kod oxirgi so'zni aytadi.

Diqqat: AIning "bu kod X qiladi" xulosasini xavfsizlik yoki pul oqimi bilan bog'liq qarorda dalil sifatida hisoblamang. Xulosa qayerga qarash kerakligini ko'rsatadigan xaritadir; Siz kodda tasdiqlashni berasiz.

Xorijiy kodlar bazasini xaritalash bosqichlari

  1. Yuqori darajadan boshlang. Birinchidan, papka tuzilishi va kirish nuqtalari (asosiy, dasturni ishga tushirish, uy routeri) bilan tanishib chiqing. AIdan "ushbu katalog tuzilishiga asoslangan ilovaning qatlamlari qanday?" so'rang.
  2. Xususiyatni oxirigacha kuzatib boring. "Foydalanuvchi tizimga kirganda qanday fayllar faollashtiriladi va qanday tartibda?" - butun arxitekturani o'qishdan ko'ra, bitta oqimni tomosha qilish ko'proq ibratlidir.
  3. Atamalarni mahalliylashtirish. AIdan loyihaga oid tushunchalarni ("ijarachi", "buxgalteriya kitobi", "ish yurituvchi") so'rang va kodda ularning ekvivalentlarini toping.
  4. Siz murakkab funktsiyani soddalashtirdingiz. Bosqichma-bosqich tushuntirib berilgan uzun funktsiyaga ega bo'ling, keyin kodda ushbu qadamlarni belgilang.
  5. Tasdiqlash. Kichkina o'zgarish qiling va tushunishingizni tekshirish uchun testlarni o'tkazing; Sinov sizning tushunishingiz noto'g'ri ekanligini darhol aytadi.

Uchta mini korpus

1-holat - Meros bo'lgan xizmat 2 kundan 3 soatgacha qisqartirildi. Ishlab chiquvchi ketayotgan hamkasbidan 4000 qatorli toʻlovlarni solishtirish xizmatini oldi. AI modullarni sarhisob qildi va to'lov oqimini oxirigacha kuzatib bordi; U koddagi ikkita muhim funktsiyani shaxsan tekshirdi. Klassik "ko'r o'qish" bilan 2 kun davom etishi taxmin qilingan kashfiyot tasdiqlangan AI usuli bilan taxminan 3 soatda yakunlandi.

2-holat - noto'g'ri nom tuzog'i. Bir funktsiya validateAndSave deb nomlangan, ammo AI xulosasida "avval tasdiqlaydi, keyin saqlaydi" deb aytilgan. Ishlab chiquvchi kodga kirganida, saqlash tekshirishdan oldin amalga oshirilganini ko'rdi va tekshirish faqat jurnalga yozildi. Bu ishlab chiqarishdagi xato chiptasining asl sababi edi. Agar kodda tekshirish bo'lmasa, noto'g'ri xulosa xatoni yashiradi.

3-holati - Yangi kutubxonani o'rganish tezlashdi. Jamoa ularga notanish bo'lgan xabarlar navbati kutubxonasini birlashtirmoqchi edi. Men AIdan "ushbu kutubxonada iste'molchini qanday sozlash kerak, xato bo'lsa, qanday qilib qayta urinib ko'rish kerak?" Ular so'rashdi va namuna ishlab chiqarishdi; Keyin ular misolni rasmiy hujjat bilan solishtirishdi va farqni aniqladilar (eski versiya API). O'rganish vaqti yarmiga qisqardi.

To'rt nusxa ko'chirish shablonlari

Kod bazasini xaritalash:

Quyida loyihaning katalog/fayl ro'yxati keltirilgan. 1) Ilova qatlamlarini ajratib oling (kirish, biznes mantig'i, ma'lumotlarga kirish va boshqalar). 2) "{{misol mulki}}" so'rovining mumkin bo'lgan fayl sayohatini sanab o'ting. 3) Ishonchingiz komil bo'lmagan joylarni "tasdiqlanishi kerak" deb belgilang. {{katalog_roʻyxati}}

Funktsiya tavsifi (bosqichma-bosqich):

Ushbu funktsiyani qator guruhlarga ajrating va har bir guruh nima qilishini oddiy turk tilida tushuntiring. Nihoyat: kiritish, chiqish, yon ta'sirlar (ma'lumotlar bazasi/fayl/tarmoq) va yuzaga kelishi mumkin bo'lgan holatlar ro'yxati. Alohida "tasdiqlanishi kerak" sarlavhasi ostida ishonchingiz komil bo'lmagan xatti-harakatlaringizni to'plang.{{funktsiya}}

Ma'lumotlar oqimini kuzatish:

“{{variable/data}}” qiymati qayerdan olingan, u qanday transformatsiyalardan o‘tadi, qayerda yozilgan? Koddagi funksiya nomlaridan foydalanib, oqim zanjirini yarating. Tegishli kod: {{code_segments}}

Kutubxonadan foydalanishni o'rganish:

Men {{library}} bilan {{purpose}} yaratmoqchiman. Minimal, ishlaydigan misol keltiring. Siz foydalanadigan har bir funksiya aslida ushbu kutubxonaga tegishli ekanligiga ishonch hosil qiling; Agar ishonchingiz komil bo'lmasa, "rasmiy hujjatlardan tekshirish" belgisini qo'ying. Versiya: {{versiya}}.

Zaif taklif / Kuchli taklif

Zaif: "Ushbu kodni tushuntiring." (Sizni nima qiziqtirmoqda? Qaysi darajada? Nima qilasiz?)
Kuchli: "Men bu funktsiyani o'z zimmasiga olaman va undagi qayta urinib ko'rish mantiqini o'zgartiraman. Funktsiyani bosqichma-bosqich tushuntiring, ayniqsa xato bo'lsa, necha marta va qaysi oraliqda qayta urinayotganingizni aniq ayting; ishonchingiz komil bo'lmagan qismlarni "tasdiqlanishi kerak" deb belgilang. [kod]"

Kuchli versiya sizning niyatingizni beradi (men qayta urinib ko'rish mantiqini o'zgartiraman) va diqqatni jamlash; shuning uchun tushuntirish umumiy xulosa emas, balki foydali qo'llanma bo'ladi.

Kvest

AI yaxshi ishlaydi

Tasdiqlashga ishonch hosil qiling

Umumiy arxitektura xulosasi

Qatlamlarni olib tashlang

Haqiqiy qo'ng'iroqlar ketma-ketligi

murakkab funktsiya

Bosqichma-bosqich tushuntirish

Teskari mantiq, yon ta'sir

ma'lumotlar oqimi

Zanjirni chizish

Shartli shoxlar, o'tkazib yuborilgan yo'llar

Kutubxonadan foydalanish

Namuna yaratish

APIning haqiqiyligi va versiyasi

Inson tushunchasini almashtirib bo'lmaydi

AI tavsifi o'rganish o'rnini bosa olmaydi; tezlashtiradi. Kod bazasiga chinakam "egalik qilish" uning aqliy modelini yaratishni anglatadi va bu model faqat kodni o'qiganingizda, kichik o'zgarishlar kiritganingizda va natijani ko'rganingizda mos keladi. Murabbiy sizga “bu yerga qarang, bu muhim” degandek AIdan foydalaning - lekin uni o'z ko'zingiz bilan ko'rgan joyda o'qing.

Maslahat: Funktsiyani tushunaman deb o'ylaganingizda, AIdan "bir jumlada umumlashtirishni" so'rang; Keyin uni o'zingizning gapingiz bilan solishtiring. Agar ikkita jumla bir-biriga zid bo'lsa, siz yoki model biror narsani o'tkazib yuborgan - va siz buni kodda ishlab chiqasiz.

Umumiy xatolar

  • Xulosani dalil sifatida ko'rib chiqing. Tavsifni tekshirmasdan kod haqida qaror qabul qilish noto'g'ri nomlar tuzog'iga tushishni anglatadi.
  • Juda katta qismlarni yopishtirish. Bir vaqtning o'zida 2000 qatorni jamlash yuzaki va xatoga yo'l qo'yadigan natijalar beradi; bo'laklarga bo'ling.
  • Maqsadni ko'rsatmaslik. Agar siz "nima qilasiz" demasangiz, tavsif umumiy bo'lib qoladi va biznesingizga e'tibor qaratmaydi.
  • Kutubxona namunasini tasdiqlamaydi. Model eskirgan yoki mavjud bo'lmagan APIni chaqirishi mumkin; Rasmiy hujjat bilan solishtiring.
  • Barcha o'rganilgan narsalarni berish. Kod bazasini o'qimay turib, faqat referatlar bilan ishlash sizni birinchi haqiqiy xatoda yordamsiz qoldiradi.

Xulosa

AI xorijiy kodlar bazasini o'rganishda kuchli qo'llanma: arxitektura xaritalarini tuzadi, murakkab funktsiyalarni soddalashtiradi, ma'lumotlar oqimini kuzatadi, kutubxonadan foydalanishni o'rgatadi. Ammo har bir tushuntirish gipotezadir. Fikringizni aniq ayting, uni ajratib oling va kodda tasdiqlang va model "tasdiqlanishi kerak" degan (va yo'q) har bir tanqidiy tasdiqni sinab ko'ring. Qo'llanma - AI; Siz xaritani o'qigan va mas'uliyatni o'z zimmangizga olasiz.

Ilova vazifasi

O'zingizga notanish yoki endigina meros bo'lib qolgan modulni tanlang. Birinchidan, "kod bazasini xaritalash" shabloniga ega bo'lgan xususiyatning qatlamlari va fayl sayohatini chiqarib oling. Keyin ushbu xususiyatning eng muhim funktsiyasini "funktsiyani tushuntirish" shablonida bosqichma-bosqich tushuntiring. Nihoyat, kodda model "tasdiqlanishi kerak" deb belgilagan kamida ikkita tasdiqni shaxsan tekshiring va ularning to'g'ri yoki noto'g'riligiga e'tibor bering.

nazorat ro'yxati

  • [ ] Men AI bayonotiga gipoteza sifatida qarayman va uni kodda tasdiqlayman.
  • [ ] Kodni tushuntirayotganda men maqsadimni qo'shdim va diqqatimni taklifga qarataman.
  • [ ] Men katta kod bazasini qismlarga bo'lish orqali umumlashtiraman.
  • [ ] Men noto'g'ri ism/teskari mantiqiy tuzoqlar uchun onlayn tanqidiy da'volarni tekshiraman.
  • [ ] Men kutubxona misollarini rasmiy hujjat va versiya bilan solishtiraman.
  • [ ] Men sunʼiy intellektdan oʻrganishni oʻrnini bosuvchi vosita sifatida emas, balki oʻrganishni tezlashtirish uchun qoʻllanma sifatida foydalanaman.