Kontentga o'tish
Tezbyte
Qo'ng'iroq band qilish
← Barcha maqolalar

Kod review'ni qurbon qilmasdan AI coding agentlardan qanday foydalanamiz

"AI bilan tezlashtirilgan development" hozir har bir agentlikning bosh sahifasida bor — bizniki ham shu jumladan. So'rashga arzigan farq — workflow aslida qanday ko'rinishga ega ekani, chunki senior jamoani 3 barobar tezlashtiradigan bir xil vositalar nazoratsiz jamoani ham xatolarni 3 barobar tezroq shipping qilishga majbur qiladi.

Mana bizniki, aniq qilib aytganda.

Vositalar

Agentik ish uchun — ko'p faylli o'zgarishlar, migratsiyalar, test generatsiyasi, refactor'lar — Claude Codedan, editor ichidagi iteratsiya uchun esa Cursordan foydalanamiz. Ikkalasi ham, faqat bittasi emas: agent-driven ish yaxshi spetsifikatsiyalangan vazifalarga mos keladi, editor darajasidagi yordam esa qidiruv (exploratory) xarakterdagi ishlarga mos keladi. Biz bu vositalarni minglab talabaga o'rgatganmiz, va bu bizni ularning qayerda ishlamasligi haqida aniq fikrga kelishga majbur qildi.

Workflow, qadam-baqadam

1. Spetsifikatsiyani odamlar yozadi, promptni emas

Har bir vazifa yozma spetsifikatsiyadan boshlanadi: data model o'zgarishi, API contract, qabul qilish mezonlari, biz allaqachon bilgan chekka holatlar (edge case). Bu AI'dan oldin ham mavjud edi — o'zgargani shuki, endi yaxshi spetsifikatsiya to'g'ridan-to'g'ri ishga tushiriladigan bo'lib qoldi. Ilgari noaniq spetsifikatsiya sekin va yomon natija bergan bo'lsa, endi u tez va yomon natija beradi. Muhandislik ishi aynan spetsifikatsiyada sodir bo'ladi.

2. Agentlar cheklovlar (guardrails) ichida ishlaydi

Har bir repo o'zining agent konfiguratsiya faylini olib yuradi: arxitektura konvensiyalari, taqiqlangan patternlar, xatolar va autentifikatsiya qanday boshqarilishi, qaysi modullar tayanch (load-bearing) hisoblanishi. Agent kod yozishdan oldin uni o'qiydi. Aynan shu narsa sizning kodbazangiz uslubida kod yaratadigan agent bilan hech qayerdan kelib chiqmagan, ishonarli ko'rinadigan kod yaratadigan agent o'rtasidagi farqni belgilaydi.

3. Kichik, ko'rib chiqish mumkin bo'lgan bosqichlar

Coding agentlar bilan eng katta muvaffaqiyatsizlik ko'rinishi — bu "ishlayotgan" 4000 qatorli pull request. Hech kim 4000 qatorni to'liq review qilmaydi — ular faqat ko'z yugurtiradi. Biz agent vazifalarini bitta halol review'ga sig'adigan hajmda cheklaymiz — odatda bir necha yuz qator. Agar vazifani shunday kichik qismlarga bo'lib bo'lmasa, demak bu dizayn muammosi, va uni avval inson hal qiladi.

4. Har bir qatorni inson ko'rib chiqadi — xuddi shu review

AI yozgan kod xuddi inson yozgan koddek bir xil pipeline'dan o'tadi: pull request, CI (types, lint, testlar), va senior muhandisning diffni o'qishi. "AI kodini AI review qilishi" emas. Git tarixida ismi bilan javobgar bo'lgan odam har bir merge'ni tasdiqlaydi.

Shuningdek, biz agent yozgan kodning qayerda ko'proq xato qilishga moyilligini bilamiz, shuning uchun review kuchimiz aynan o'sha joylarga yo'naltiriladi: sezilmasdan yutib yuborilgan xatolar, ishonarli ko'rinsa-da noto'g'ri edge-case ishlov berish, sezilmas N+1 so'rovlar, kod nima qilishi kerakligini emas, balki kod nima qilayotganini tasdiqlaydigan testlar.

5. Testlar raqib nuqtai nazaridan (adversarially) yoziladi

Test to'plamlarini generatsiya qilish uchun agentlardan foydalanamiz — ular coverage bo'yicha og'ir, mexanik ishda a'lo. Ammo qabul qilish testlari (acceptance tests) spetsifikatsiyadan kelib chiqadi va implementatsiyadan oldin yoziladi, shuning uchun testlar talabni tekshiradi, implementatsiyani emas. Bir xil agentga ham kodni, ham uning to'g'riligi ta'rifini yozdirish butun g'oyani yo'qqa chiqaradi.

Doimiy ravishda inson qo'lida qoladigan narsalar

  • Arxitektura va data modeling. Orqaga qaytarish qimmatga tushadigan sxema qarorlari. Agent noto'g'ri poydevor ustiga har qachongidan tezroq qurib beradi.
  • Xavfsizlikka sezgir joylar. Auth oqimlari, to'lovlarni boshqarish, tenant izolatsiyasi, sirlar (secrets), ruxsatlarga tegishli har qanday narsa. Agent qoralamalariga ruxsat beriladi, lekin inson qator-baqator egalik qilishi shart.
  • API contract'lar va uchinchi tomon integratsiyasi dizayni. Bular ularni amalga oshiruvchi koddan ko'ra uzoqroq umr ko'radi.
  • "Yo'q" deyish. Eng qimmatli muhandislik harakati hali ham qamrovni (scope) qisqartirish, va hech qaysi agent buni o'z ixtiyori bilan qilmaydi.

Bu mijoz sifatida siz uchun nimani anglatadi

Halol raqamlar: bu workflow yaxshi spetsifikatsiyalangan ishlarda bizning qurilish vaqtimizni deyarli yarmiga yoki undan ham ko'proqqa qisqartiradi — bizning fixed narxlarimiz aynan shuning uchun shunday. Bu sizning kodingizga kamroq senior muhandis tegdi degani emas — bu ularning vaqti yozishdan spetsifikatsiya qilish va review qilishga ko'chdi degani, va aslida ular har doim aynan shu ishlarda eng qimmatli bo'lgan.

AI tezlashuvi haqida da'vo qiladigan istalgan agentlikni baholayotganda, bitta savol bering: "Menga pull request ko'rsating." Haqiqiy intizomga ega jamoa sizga o'ttiz soniyada kichik, spetsifikatsiyaga bog'langan, inson tomonidan review qilingan diffni ko'rsata oladi. Bunday intizomga ega bo'lmagan jamoa esa sizga slayd ko'rsatadi.


Agar shunga o'xshash loyihani rejalashtirayotgan bo'lsangiz, 30 daqiqalik qo'ng'iroqni band qiling — biz sizga workflow'ni haqiqiy kod ustida ko'rsatib beramiz va aniq javob beramiz.