حالا خودت انتخاب میکنی نرمافزارت چند تا باگ داشته باشه
خلاصهٔ کاملتر
نولان لاوسون تو نوشتهٔ تازهش میگه یه چیز عجیب توی کدنویسی با هوش مصنوعی هست: حالا تقریباً خودت تصمیم میگیری نرمافزارت چند تا باگ داشته باشه. تجربهٔ خودش اینه که توی یه سیستم پیچیده، هر تعداد باگی که از ایجنت بخوای برات پیدا میکنه؛ اگه از باگهای همین PR خسته شدی، ایجنت باگهای قدیمی کدبیس رو هم برات در میآره. سؤال فقط اینه که کجا وایسی و بگی تمومه.
به گفتهٔ نویسنده این ماجرا اول از امنیت شروع شد، چون باگ امنیتی از همه غیرقابلچشمپوشیتره، ولی بعدش نوبت درستی، پرفورمنس، دسترسپذیری و پایداریه. نکتهٔ اصلی اینه که پیدا کردن باگ تقریباً مجانی شده و ایجنتها باگهای ریز و پیچیدهای رو در میآرن که ممکن بود سالها کشف نشن. ولی رفع کردن هنوز خرج داره: حجم کد در برابر احتمال واقعیِ رخ دادن باگ، ریسک باگ جدید، و سختتر شدن فهم کد برای بازبین بعدی.
نویسنده معتقده از وقتی کدنویسی با AI باب شد، پختگی کلی نرمافزارها بهتر نشده و اگه چیزی عوض شده فقط زیاد شدن نرمافزارهای بیکیفیته. دلیلش اینه که توان ما در پیدا کردن باگ بهشدت بالا رفته ولی آستانهٔ تحملمون ثابت مونده. سه فشار مخالف رو هم نام میبره: پارادوکس مشکل قابلپیشگیری (اگه حادثهای رو جمع کنی قهرمانی، اگه جلوش رو بگیری کسی نمیفهمه کاری کردی)، فشار سازمانی برای شیپ کردن نتیجهٔ دیدنی، و تنبلی و خستگی ذهنی خودِ توسعهدهنده از خوندن صدمین گزارش باگ.
برای فرار از این چرخهٔ بیپایان سه راه پیشنهاد میکنه. اول، حواست به epicycle باشه — یعنی همون حلقههای اضافی که منجمهای قبل از کوپرنیک برای درست کردن مدار سیارهها اضافه میکردن و مدل رو دقیقتر ولی پیچیدهتر میکرد. ایجنتی که روی لوپ گذاشته باشی بهازای هر باگ یه پیچیدگی جدید میسازه، چون تو سادهسازیهای بزرگ ضعیفه؛ پس بخش باارزش بازبینی کد اینه که بپرسی «چطور میشه این رو سادهتر کرد؟».
دوم، تست خوب: تو تجربهٔ خودش از پیادهسازی API استاندارد IndexedDB با vibe coding معلوم شد ایجنت میتونه کل سوییت تست رو یکییکی رد کنه، و اگه به ۱۰۰٪ نزدیک شه تقریباً مطمئنی پیادهسازی سالمه — ولی این فقط چون Web Platform Tests سوییت فوقالعادهایه جواب میده و کم شرکتی تو کدبیس خودش چنین چیزی داره. سوم، سادهتر کردن طراحی سیستم تا کل یه دسته باگ اصلاً ممکن نباشه؛ مثالش MPA در مقابل SPA هست: با MPA خرابی دکمهٔ back، از دست رفتن scroll، نشتی حافظه و مشکلات دسترسپذیری هنگام ناوبری وجود ندارن.
نکات کلیدی:
- پیدا کردن باگ با ایجنت تقریباً مجانی شده؛ هزینه به مرحلهٔ تصمیم و رفع منتقل شده
- ماجرا از باگهای امنیتی شروع شد و بعد به درستی، پرفورمنس، دسترسپذیری و پایداری میرسه
- ایجنت روی لوپ بهازای هر باگ یه epicycle میسازه؛ LLMها تو سادهسازی بزرگ ضعیفان
- تستمحور جواب میده ولی به سوییتی در سطح Web Platform Tests نیاز داره
- انتخاب MPA بهجای SPA کل دستهای از باگها مثل خرابی back و نشتی حافظه رو حذف میکنه
- نویسنده میگه پختگی نرمافزارها بهتر نشده، چون آستانهٔ تحمل باگ عوض نشده




