← 返回列表

AI intervyu seriyasi 15: Vibe Coding ning keng tarqalgan tuzoqlari qanday?

Vibe Coding ning "hissiyot/atmosfera" yo'nalishi tez prototip yaratish va ijodiy kashfiyotlar uchun juda qulay bo'lsa-da, nazoratsiz qoldirilsa, bir nechta odatiy tuzoq va muammolarga olib kelishi mumkin. Quyida kod sifati, texnik xizmat ko'rsatish, xavfsizlik, talablarning evolyutsiyasi va jamoaviy hamkorlik nuqtai nazaridan besh jihatni umumlashtiramiz.


I. Kod sifati tuzoqlari

Vibe Coding suhbatga asoslangan iteratsiyaga tayanadi, shuning uchun foydalanuvchi har safar noaniq o'zgartirish talabini qo'yganida (masalan, "bu tugmachaga texnologik tuyg'u qo'shing") AI mavjud mantiqni qayta qurishdan ko'ra yangi kod qo'shishga moyil bo'ladi. U qaysi eski kodlar ishlamayotganini bilmaydi va ularni o'chirishga jur'at eta olmaydi, natijada ortiqcha va o'lik kodlar to'planib boradi. Bundan tashqari, AI ning yagona "kod uslubi xotirasi" yo'q; har bir yaratilgan kod boshqa nomlash qoidalariga amal qilishi mumkin (o'quv namunaviy materiallarning tasodifiyligiga qarab), foydalanuvchi esa kamdan-kam aniq qoidalarni beradi, natijada kod tartibsiz va oldindan aytib bo'lmas holga keladi. Quyida umumlashtirilgan jihatlar:

  1. Ortiqcha va o'lik kodlar: Bir necha marta tuzatishlardan so'ng, AI eski amaliyotlarni, izohlangan kod bloklarini va foydalanilmagan importlarni saqlab qoladi, chunki o'chirish xavfi yuqori.
  2. Nomuvofiq nomlash va uslub: AI turli bosqichlarda o'quv ma'lumotlaridan tasodifiy uslublarni oladi; foydalanuvchi qoidalarni majburlashmasa, camelCase, underscore va bo'shliqlar aralashib ketadi.
  3. Yashirin mantiqiy xatolar: AI "odatiy yo'llar" bilan to'g'ri ishlaydigan kodni yaratishga intiladi, ammo chegara shartlari (null qiymatlar, ekstremal holatlar, parallellik) ko'pincha e'tiborga olinmaydi, chunki o'quv ma'lumotlarida bunday misollar kam.

II. Texnik xizmat ko'rsatish tuzoqlari

Vibe Coding ning iteratsiya tezligi juda yuqori bo'lib, foydalanuvchi va AI ikkalasi ham "joriy funksiya ishlayaptimi?" ga e'tibor qaratadi, hujjat yozish, izoh berish yoki qayta qurishga deyarli vaqt qolmaydi. AI uzoq muddatli xotiraga ega emas, funksiyalar uchun docstring yozishni taklif qilmaydi va keyingi dasturchini hisobga olmaydi. Bundan tashqari, AI "hozirgi talabni qondirish" ga intiladi, ya'ni universal ramka yaratishga haddan tashqari urinadi (foydalanuvchi keyin kerak bo'ladi deb o'ylab) yoki nusxa ko'chirish va joylashtirish orqali tez amalga oshiradi, natijada abstraksiya darajasi chalkash bo'ladi. Quyida umumlashtirilgan jihatlar:

  1. Hujjat va izohlarning yo'qligi: AI "o'zini-o'zi izohlovchi" kodni chiqaradi, ammo murakkab regex yoki algoritmlarni tushunish qiyin; foydalanuvchi talab qilmasa, hujjat yozilmaydi.
  2. Haddan tashqari abstraksiya yoki abstraksiya yetishmasligi: AI ba'zida oddiy masalalarda ham keng tarqalgan dizayn naqshlarini (masalan, factory, strategy) qo'llaydi, ba'zida esa umumiy funksiyani ajratib olishga dangasalik qilib, kod bloklarini to'g'ridan-to'g'ri nusxalaydi.

III. Xavfsizlik tuzoqlari

AI ning o'quv ma'lumotlari ochiq manbali kodlarni o'z ichiga oladi, ular orasida tarixiy zaifliklar (masalan, SQL biriktirish, qattiq kodlangan kalitlar) ham bor. Vibe Coding da foydalanuvchi kamdan-kam "parametrlashgan so'rovlardan foydalaning" yoki "kalitlarni muhit o'zgaruvchisidan o'qing" deb so'raydi, shuning uchun AI eng keng tarqalgan (va ko'pincha xavfli) usulni qo'llaydi. Bundan tashqari, AI da "tahdid modeli" tushunchasi yo'q; u kirish filtrlari, minimal ruxsatlar kabi narsalarni tekshirmaydi, chunki faqat funksiya bajarilishiga e'tibor qaratadi. Quyida umumlashtirilgan jihatlar:

  1. In'eksiya zaifliklari: AI odatda SQL/buyruqlarni yaratish uchun string biriktirishdan foydalanadi, chunki bu oddiy darsliklarda eng keng tarqalgan usul.
  2. Maxfiy ma'lumotlarni qattiq kodlash: O'quv namunalaridagi misollar ko'pincha API kalitlarini to'g'ridan-to'g'ri kodga yozadi, AI esa shu usulni takrorlaydi.
  3. Haddan tashqari ruxsatlar: AI qulaylik uchun fayllarni sudo yoki w+ rejimida ochadi, eng kam zarur ruxsatlarni hisobga olmaydi.

IV. Talablarning evolyutsiyasi tuzoqlari

Vibe Coding aniq chegaralarga ega emas. Foydalanuvchi "yana bir funksiya qo'shing" deyishi bilan AI buni bajarishga harakat qiladi, lekin u "qanchalik chegaradan tashqari" ekanligini bilmaydi. Shuningdek, AI ustuvorlik tushunchasiga ega emas, bir vaqtning o'zida uchta qo'shimcha xususiyatni amalga oshirib, asosiy funksiyani bo'g'ib qo'yishi mumkin. Bundan tashqari, har safar yangi xatoni tuzatishda AI eski funksiyalarni qayta ko'rib chiqmaydi, natijada A ni tuzatib, B ni buzish kabi regressiya muammolari yuzaga keladi. Quyida umumlashtirilgan jihatlar:

  1. Qamrovning kengayishi: AI "foydalanuvchini qondirish" uchun keraksiz bo'lgan qo'shimcha funksiyalarni (masalan, kalkulyatorga tarix yozuvini qo'shish) taklif qiladi.
  2. Funksiyaning regressiyasi: AI biror xatoni tuzatishda global kontekstni bilmagani uchun umumiy funksiyani o'zgartirib, unga bog'liq boshqa funksiyalarni buzadi.

V. Jamoaviy hamkorlik tuzoqlari

Vibe Coding ning suhbat jarayoni shaxs va AI o'rtasidagi xususiy o'zaro aloqa bo'lib, o'tkaziladigan spetsifikatsiya hujjatlari yoki dizayn qarorlari yozuvlari qolmaydi. Turli jamoa a'zolari AI bilan alohida suhbatlashadi, natijada har birining kodi o'ziga xos uslubga ega bo'lib, birlashtirilganda ko'plab to'qnashuvlar yuzaga keladi. Bundan tashqari, AI avtomatik ravishda commit xabarlari yoki o'zgarish jurnallarini yaratmaydi, kod evolyutsiyasining sabablari yo'qoladi, keyingi texnik xizmat ko'rsatuvchilar faqat taxmin qilishi mumkin. Quyida umumlashtirilgan jihatlar:

  1. Qayta tiklanmaydigan qurilmalar: Turli odamlar, turli vaqtlarda bir xil prompt bilan AI dan turli xil implementatsiyalarni olishadi (namuna olish tasodifiyligi tufayli).
  2. O'zgarishlarni kuzatishning yo'qligi: Dizayn hujjatlari, commit xabarlari bo'lmaydi, "nima uchun bunday o'zgartirildi" degan tushuntirish yo'q, kod qora qutiga aylanadi.

评论

暂无已展示的评论。

发表评论(匿名)