کیفیت کد در دوران ایجنتها
خلاصهٔ کاملتر
به گفتهٔ ادی آزمانی، تا امروز کیفیت کد رو با کدریویو میسنجیدیم؛ یکی کد رو میخوند و مطمئن میشد تمیز، سریع و قابلفهمه. ولی وقتی ایجنتها روزی صدها هزار تغییر میسازن، این روش دیگه مقیاس نمیگیره، چون آدمی نیست که همهشو بخونه. پس بررسی کیفیت باید از دوش آدمها برداشته بشه و بره توی خود هارنس، محیط و سیستمی که ایجنت داخلش کار میکنه.
ابزار اصلی این کار چیزیه که نویسنده بهش میگه دروازهٔ کیفیت (quality gate): محدودیتهای قطعی و خودکاری که هر پیشنهاد ایجنت رو میسنجن. از تست واحد و تست ویژگیمحور و تست پذیرش گرفته تا mutation testing که با ساختن نسخههای دستکاریشدهٔ کد چک میکنه تستها واقعاً باگ رو میگیرن یا نه، بهعلاوهٔ متریکهایی مثل پیچیدگی سایکلوماتیک و طول خط. حتی قوانین معماری رو هم میشه با لینترهایی مثل ESLint اجباری کرد.
نویسنده میگه یه ایجنت میتونه هر چیزی پیشنهاد بده؛ این محدودیتهای توئه که تصمیم میگیرن اون پیشنهاد اَمن، درست و بهاندازه محدود هست یا نه. اما دو تا حفره باقی میمونه: خودمختاری، چون ایجنت وقتی اطلاعات کمه یا صورتمسئله مبهمه زمین میخوره؛ و اعتماد، که بهقول نویسنده باید سخت بهدست بیاد. محیط خوب محیطیه که کار واقعی توش شدنی باشه، فیدبک قابلاعتماد بده و شکست توش کمهزینه باشه.
همهٔ اینا فشار برگشتی (back-pressure) میسازن: کامپایلری که کد نامعتبر رو رد میکنه، تستی که فیل میشه، سیاست امنیتی که جلوی الگوی بد رو میگیره، CI که اجازهٔ دیپلوی نمیده. نویسنده تأکید میکنه این فشار باید تو کل چرخه پخش باشه، نه یه بازرسی تکی سر آخر کار. اگه هم حجم تغییرها از ظرفیت ابزارها بزنه جلو، یه صف میسازیم که با سرعت آدم حرکت میکنه.
برای اون حالت سه راه رو پیشنهاد میده: بزرگکردن ظرفیت سیستم تأیید، کمکردن نرخ تولید تغییر توسط ایجنتها، یا پایینآوردن نوار کیفیت. نویسنده معتقده کیفیت یه عدد واحد نیست؛ مجموعهای از سیگنالهاست — درستی، نگهداشتپذیری، کارایی، امنیت و فهمپذیری — و باید آگاهانه انتخاب کنی کجا سفت بگیری و کجا شل. جایی که براش سفت میگیری، میتونی جای دیگه آزادی بدی بدون اینکه کیفیت قربانی بشه.
نکات کلیدی:
- کدریویوی خطبهخط با حجم کد ایجنتی جور درنمیاد؛ چکها باید برن توی هارنس و محیط
- دروازههای کیفیت: تست واحد/ویژگیمحور/پذیرش، mutation testing، متریکهای پیچیدگی، قوانین معماری در لینتر
- ایجنت هر چیزی پیشنهاد میده؛ محدودیتها تصمیم میگیرن چی به پروداکشن میرسه
- فشار برگشتی باید در کل مسیر پخش باشه، نه فقط سر آخر تو CI
- توجه انسانی کمیابه: فقط وقتی گاردریل خودکار میشکنه آدم رو وسط بیار
- کیفیت چندبعدیه: درستی، نگهداشتپذیری، کارایی، امنیت و فهمپذیری




