کد هوش مصنوعی موقع ریویو خوبه، موقع اجرا بد
خلاصهٔ کاملتر
به گفتهٔ Help Net Security، تو بیشتر شرکتهای فناوری آمریکا حالا ماشینها بخش عمدهٔ کدی که هر هفته منتشر میشه رو مینویسن و کار مهندس بهسمت ریویو کردن چیزی که AI تولید میکنه جابهجا شده. جالبه که این ریویو به کد نمرهٔ بالا میده: مدیرها کد تولیدشده با AI رو باکیفیتتر از کد آدمهای خودشون میدونن و ساختار تمیز، استایل یکدست و تعداد کم باگهای آشکار موقع سابمیت رو تحسین میکنن.
ولی همین کد وقتی اجرا میشه بدتر رفتار میکنه. نویسنده میگه حادثههای production تو یه سال گذشته بالا رفته و مهندسهای ارشد وقت بیشتری صرف رفع کد تولیدشدهٔ AI میکنن. اکثریت بزرگی از سازمانها تو شش ماه گذشته حداقل یه خرابی production مرتبط با کد AI داشتن و بخش قابلتوجهی از این کد کمی بعد از انتشار برای تعمیر برمیگرده.
الگو با اعتمادی شروع میشه که زود میرسه. بیشتر تیمها میگن اغلب کد AI رو بدون بررسی خطبهخط به production میفرستن؛ چون کد خوب خونده میشه، سریع از ریویو رد میشه و همون مرحلهٔ بازرسی که خیلی از نقصهای امنیتی اونجا گرفته میشن، ساکت میمونه. مدلهای زبانی کدی تولید میکنن که تو شرایط تمیز و قابلپیشبینی کار میکنه، ولی نقطهضعفها تو edge caseها، همزمانی (concurrency)، فراخوانی APIهای منسوخ و تغییرات پیچیدهٔ state ظاهر میشن — و اینا تا وقتی کاربر واقعی به سیستم نخوره مخفی میمونن.
طبق مطالعهٔ New Relic، آسیبپذیریهای امنیتی تازهمعرفیشده تو شش ماه گذشته حدود سه سازمان از هر ده تا رو درگیر کرده و مشکلات یکپارچگی، انطباق و صحت داده هم سهم مشابهی داشتن. نویسنده میگه کد AI نزدیک به دو برابرِ کد انسانیِ ریویشده مشکل بحرانی زمان اجرا معرفی میکنه؛ خرابیها هم به شکل کلی مشکل کوچیک همزمان پخش میشن. drift اسکیما و بالا رفتن نرخ خطا بین سرویسها نشونهٔ شکست یکپارچگیه و الگوهای عجیب تو دادههای احراز هویت و trace هم ضعفهای امنیتی رو لو میده — و نخ مشترک همهشون اینه که این نشونهها بعد از دیپلوی و خیلی بعدتر از مرحلهٔ ریویو پیدا میشن.
ریشهٔ ماجرا یه شکاف بنیادیه: ریویوکننده سورس رو میخونه، ولی production یه trace تولید میکنه. سورس نشون میده کد چطور ساخته شده، ولی trace نشون میده تحت بار واقعی، وابستگیهای واقعی و edge caseهای واقعی چطور رفتار میکنه. ابزارهای کدنویسی AI کد رو فقط از روی سورس تولید میکنن، بدون هیچ دیدی به شرایط زمان اجرا؛ همین فاصله توضیح میده چرا کد AI تو ریویو نمرهٔ خوب میگیره ولی تو دنیای واقعی بد عمل میکنه. تمیزکاریش هم میافته گردن کارکنان باتجربه: مهندسهای SRE و DevOps گزارش میدن تا یکسوم هفتهٔ کاریشون رو صرف triage و refactor کردن خروجی ماشینی میکنن که بدون بررسی به production رسیده.
راهحلی که مدیرها روش تقریباً اجماع دارن، جلو کشیدن observability تو فراینده. اونا مانیتورینگ زمان اجرا رو برای کد AI ضروری میدونن و خیلیها الان به AI پرامپت میدن که تلهمتری مثل لاگ و trace رو مستقیم داخل کدی که مینویسه بسازه؛ یعنی تصمیم دربارهٔ اینکه چی لاگ بشه و روی چی هشدار بده، به بالادست و به پرامپت توسعهدهنده منتقل میشه. نویسنده اشاره میکنه که سرعتگرفتن پشت این ماجرا واقعیه و درآمد هم بازتابش میده، برای همین پذیرش بالا میره — کد نوشتهشده با AI تو سیاست رسمی production بیشتر سازمانها جا داره و به همون سرویسهای مشتریمحورِ کد مهندسهای ارشد میرسه، و هیچ سازمانی تو این نظرسنجی این کار رو ممنوع نکرده.
نکات کلیدی:
- کد AI موقع ریویو نمرهٔ کیفیت بالا میگیره ولی موقع اجرا بدتر عمل میکنه و حادثههای production رو بالا برده
- طبق New Relic، کد AI نزدیک به دو برابر کد انسانیِ ریویشده مشکل بحرانی زمان اجرا میسازه
- ضعفها تو edge case، همزمانی، APIهای منسوخ و تغییرات پیچیدهٔ state مخفی میمونن و بعد از دیپلوی بیرون میزنن
- شکاف اصلی اینه که ریویو سورس رو میخونه ولی رفتار واقعی فقط تو trace زمان اجرا پیداست
- راهحل: جلو کشیدن observability و پرامپتدادن به AI برای ساختن لاگ و trace داخل خود کد




