گلوگاه دیگه کد ریویو نیست، تسته
خلاصهٔ کاملتر
تو این پست اومده که ترتیب کندیها عوض شده. یه ایجنت PR باز میکنه، Greptile تو چند دقیقه ریویوش میکنه و بعدش هم آدم هم ماشین منتظر تستن. اگه سوئیت کامل ۱۳ دقیقه طول بکشه، ۱۳ دقیقه هیچ کار دیگهای جلوش نیست. نویسنده میگه برای یه پروژهٔ دو نفره مرجکیو (صفی که PRها یکییکی تست و مرج میشن) راه انداخته، کاری که قبل از ایجنتها بهش میخندید، چون یه بار خودش ۴۰ دقیقه پشت صفی از PRهای ایجنتی گیر کرده که همه به همون ۱۳ دقیقه بند بودن.
ترفند قدیمی، یعنی لایهلایه کردن تستها، هم دیگه جواب نمیده. سوئیت کُند شبانه هنوز اجرا میشه ولی نمیتونه بین باگ و پروداکشن وایسه، چون هر مرج ایمیج میسازه و پروداکشن هر ۱۵ دقیقه آخرین نسخه رو برمیداره؛ یعنی حدود نیم ساعت از مرج تا اجرا. گزارشی که نصفشب میرسه، از باگی حرف میزنه که صبح رفته بالا و چند صد PR ایجنتی هم روش سوار شده.
مشکل دومی هم هست که CI سریع حلش نمیکنه: ریپو هرچی بزرگتر بشه، فهمیدنش سختتره. مهندس تازهوارد چند هفته وقت داره تا بفهمه کدوم گوشهها خطرناکن، ولی ایجنت هر تسک رو سرد و از صفر شروع میکنه و باقی رو از کدِ بغلش حدس میزنه. نویسنده میگه حرفش این نیست که مونورپو غلطه؛ اینه که برای تیمی که بیشتر کارش رو چیزی انجام میده که هر بار دیوارها رو از نو یاد میگیره، الگوی بدیه.
پس هر قابلیتی که به اندازهٔ کافی مستقل باشه رو قبل از گره خوردن میکشه بیرون، با تست و مرجکیو و ریلیز خودش. اولین تیکه groups بود و PR توش حدود دو دقیقه CI میخواد در برابر ۱۳ دقیقهٔ همون کار تو مونورپو. آنتروپیک از سمت دیگه به همین مشکل خورده و سراغ test impact analysis رفته، یعنی فقط تستهایی اجرا بشن که تغییر میتونه روشون اثر بذاره؛ نویسنده میگه با دو نفر آدم، نگهداری اون سیستم با خودِ محصول رقابت میکنه.
شرط جواب دادنِ این تقسیم اینه که مرز واقعی باشه: مرزی با اینترفیس مبهم از بیمرزی بدتره، چون کوپلینگ سر جاشه ولی دیده نمیشه. هر سرویس اینترفیس مشخص داره و تماسها روی شبکهٔ داخلی داکر میره. هزینههاش هم روشنه: باید قبل از شروع تصمیم بگیری کار مال کدوم سرویسه، سرویسها جدا از هم خراب میشن، و کاری که یه PR بود میشه سه PR هماهنگ. کارِ چندریپویی رو هم با یه ایجنت UTL (تکلیدی که بالای چند ریپو کار میکنه) روی Fable 5.1 میچرخونه که خودش کد نمینویسه و فقط دلیگیت میکنه.
نکات کلیدی:
- PR تو ریپوی جداشدهٔ groups حدود ۲ دقیقه CI میخواد، در برابر ۱۳ دقیقه تو مونورپو.
- پروداکشن هر ۱۵ دقیقه ایمیج جدید رو برمیداره، پس از مرج تا اجرا حدود نیم ساعت فاصله هست.
- معیار فعلی نویسنده برای جدا کردن یه تکه: یک کار مشخص، یک مالک، و APIـی که تو یک جمله توصیف بشه.
- جابهای CI آنتروپیک تو شش ماه ۲۵ برابر شد و جوابش test impact analysis بود.
- ایجنت UTL روی Fable 5.1 اجرا میشه، کد نمینویسه و کار رو بین سابایجنتها پخش میکنه.




