ریفکتورینگ ۸۳ درصد از توکنها رو کم کرد
خلاصهٔ کاملتر
نویسنده که مدیر ارشد فنی Thoughtworks تو اروپا، خاورمیانه و هنده، میگه یه اپلیکیشن حدوداً ۱۵۰ هزار خطی (بیشترش Rust، بقیه TypeScript و Terraform) رو کاملاً با ایجنتها ساخته و تقریباً هیچوقت کد رو نخونده. وسط کار میبینه لایهٔ دسترسی به داده داره بیوقفه ورم میکنه: هر کوئری، ستآپ درخواست HTTP و انکود و دیکود JSON رو از نو تکرار میکرده، تا جایی که اون لایه به ۱۷٬۱۵۵ خط تو یه فایل Rust رسیده.
ایدهٔ آزمایش سادهست و دقیقاً چون ایجنتها چیزی یاد نمیگیرن جواب میده: بعد از هر مرحلهٔ ریفکتور، یه سابایجنت تازه با دقیقاً همون پرامپت فرستاده میشه سراغ یه تغییر مشخص و تکراری، هزینهٔ توکنش ثبت میشه و بعد تغییر دور ریخته میشه. اینجوری هیچ مرحلهای چیزی از مرحلهٔ قبل یاد نمیگیره و مقایسه تمیز میمونه. تعداد خطوط کد و زمان اجرا هم بعد هر قدم ثبت شده.
نتیجه واضح بوده: تا وقتی بزرگترین فایل کوچیک نشده توکن ورودی تقریباً ثابت مونده، ولی از اونجا به بعد ریزش کرده. بین خط پایه و آخرین قدم، توکن ورودیِ همون تغییر از ۱۵۹٬۵۶۴ به ۲۷٬۳۶۰ رسیده؛ با قیمتهای اون موقع حدود ۴۰ سنت صرفهجویی بهازای هر تغییر، ولی این صرفهجویی یهبارمصرف نیست و از این به بعد هر تغییری تو این لایه ارزونتر تموم میشه.
نکتهٔ مهم اینه که کل خطوط کد لایهٔ داده تقریباً ثابت مونده؛ چیزی که عوض شده اینه که ایجنت تونسته کوچیکترین زیرمجموعهٔ فایلهای لازم رو پیدا کنه و کمتر بخونه. به همین دلیل نویسنده تأکید میکنه تیکهتیکهکردن تصادفی فایل کمکی نمیکنه؛ قدمهای اول یعنی حذف تکرار و استخراج تابع و کلاس، زمینه رو برای صرفهجویی بزرگِ آخر آماده کردن. توکن خروجی هم عملاً تکون نخورده، چون حجم کدی که نوشته میشه کم نشده.
به گفتهٔ نویسنده، Claude تو خودِ ریفکتورینگ خوب نبوده: نمیتونسته تشخیص بده کدوم ریفکتور مناسبه و آدم باید فعالانه هدایتش کنه، و کار مکانیکی رو با اسکریپتهای Python روی grep و sed انجام میداده که مدام سر تورفتگیها گیج میشدن. ارزشمندترین ریفکتور هم تو پاس اول جا افتاده و بعداً اضافه شده. کل آزمایش حدود هشت ساعت طول کشیده، بیشترش بدون نظارت. نویسنده خودش میگه این فقط یه آزمایشه روی یه پروژهٔ تکنفره و تازه اولِ راهه.
نکات کلیدی:
- هدف آزمایش یه فایل Rust با ۱۷٬۱۵۵ خط بود، خروجی کدنویسی کاملاً ایجنتی
- بعد از هر قدم ریفکتور، یه سابایجنت تازه همون تغییر ثابت رو اجرا کرد تا هزینه قابل مقایسه بمونه
- توکن ورودی از ۱۵۹٬۵۶۴ به ۲۷٬۳۶۰ رسید، یعنی ۸۳ درصد کمتر
- صرفهجویی از کمشدن حجم کد نیومد، از این اومد که ایجنت کمتر میخونه
- توکن خروجی تغییری نکرد و Claude برای انتخاب و اجرای ریفکتورها به هدایت آدم نیاز داشت




