فیلیپ مورتیمر در نشست QCon لندن اعلام کرد که هوش مصنوعی روندی را شتاب می‌دهد که آن را «کد فقط‌نوشتنی» نامیده است: کدی که خواندن و فهم خط‌به‌خط آن برای انسان دشوار شده و مجموعه‌های گستردهٔ تست نقش اصلی در تعریف رفتار نرم‌افزار را بر عهده می‌گیرند. در چنین وضعیتی بازنویسی اغلب ساده‌تر از اشکال‌زدایی است و بازبینی دستیِ مقیاس‌پذیر برای کد تولیدشده توسط مدل‌ها عملاً ممکن نیست.

علت شکل‌گیری کد فقط‌نوشتنی

مورتیمر دو عامل کلیدی را نام برد: زبان‌ها و الگوهایی که به‌خاطر فشردگی سینتکس، خوانایی را فدای قدرت می‌کنند، مانند APL و عبارت‌های منظم؛ و تولید خودکار کد توسط مدل‌های زبانی که خروجی‌های موجز ولی کم‌شفاف تولید می‌کنند. وقتی کد به این شکل فشرده و غیرشفاف شود، تحلیل رفتاری از روی خواندن سورس عملاً بی‌ثمر شده و تیم‌ها به تست‌ها و مجموعه‌های ورودی-خروجی برای شناخت سیستم تکیه می‌کنند.

تست‌ها به‌عنوان مستند و قرارداد رفتار

مورتیمر تأکید کرد که تست‌ها اکنون نقش مستندات عملیاتی را بر عهده دارند: به‌جای گشتن میان خطوط کد برای یافتن منطق، توسعه‌دهندگان رفتار موردانتظار را از زوج‌های ورودی-خروجی تست‌ها استخراج می‌کنند. این رویکرد تست‌ها را به مرجع اصلی رفتار تبدیل می‌کند و استانداردهای پذیرش را در عمل مشخص می‌سازد.

کد قابل دور انداختن؛ بازنویسی به‌جای دیباگ

اگر کد برای انسان قابل‌فهم نباشد، اشکال‌زدایی زمان‌بر و پرریسک می‌شود. راهکار پیشنهادی مورتیمر ساده است: تست‌ها را حفظ کنید، اما کد مبهم را کنار بگذارید و از ابتدا بازنویسی کنید. در بسیاری از موارد هزینهٔ بازنویسی و تست‌محور کردن مجدد کمتر از صرف ساعت‌ها تلاش برای اصلاح کدی است که قابل تحلیل نیست.

فیلیپ مورتیمر در سخنرانی QCon درباره کد فقط‌نوشتنی

بازبینی کد توسط انسان؛ یک گلوگاه نوظهور

مورتیمر هشدار داد که بازبینی خط‌به‌خط کد تولیدشده توسط مدل‌ها به‌دلیل حجم و سرعت تولید فاقد مقیاس‌پذیری است. راه‌حل عملی او پیاده‌سازی اتوماسیون بازبینی است: عوامل خودکار در جریان CI اجرا شوند، نظرات خود را ثبت کنند، درخواست تغییر دهند یا حتی PRها را تایید کنند. او از نمونه‌هایی یاد کرد که مدل‌ها با پرامپت‌ها و زمینه‌های مناسب، بازبینی‌های مفیدی ارائه داده و باگ‌ها را پیش از استقرار کشف کرده‌اند.

نرم‌افزار خودترمیم: از ایده تا اجرا

یکی از پیشنهادهای کلیدی مورتیمر این است که عوامل هوش مصنوعی به سامانه‌های مشاهده‌پذیری گوش دهند، هشدارها را تجمیع کنند و بر اساس الگوهای تکرارشونده، pull requestهایی برای رفع مشکلات ایجاد نمایند. چنین مکانیسمی می‌تواند بار تیم‌های عملیاتی را کاهش دهد و بسیاری از اصلاحات تکراری را خودکار سازد.

جداسازی نیت از پیاده‌سازی و تمرکز بر خلاقیت

مورتیمر با اشاره به نقش زبان طبیعی به‌عنوان رابط کاربری می‌گوید نیت (هدف) از پیاده‌سازی جدا می‌شود: توسعه‌دهندگان دیگر لازم نیست صرفاً متخصص یک زبان باشند و می‌توانند بیشتر روی طراحی راه‌حل، خلاقیت و حل مسئله تمرکز کنند. خلاقیت به‌صورت تکراری و تدریجی رشد می‌کند و ورود به فرایند تولید برای افراد بیش از گذشته امکان‌پذیر است.

نکات عملی برای تیم‌ها

  • تست‌محوری: نوشتن تست‌های دقیق و پوشش‌دهی خودکار، تست‌ها را به منبع حقیقت رفتار تبدیل می‌کند.
  • عامل‌های بازبینی در CI: ابزارهایی که می‌توانند نظرات، درخواست تغییر یا تایید PR صادر کنند و بازخورد خودکار فراهم کنند.
  • پاک‌سازی منظم: اجرای دوره‌ای عامل‌های پاک‌سازی برای حذف کد تکراری و تست‌های ناقص.
  • پیاده‌سازی خودترمیم: ترکیب پلتفرم‌های مشاهده‌پذیری با عامل‌های هوش مصنوعی برای تولید اصلاحات خودکار.
  • حفظ زمان تمرکز: تخصیص بازه‌های بدون مزاحمت برای توسعه‌دهندگان تا خلاقیت و طراحی کیفیت بهتری پیدا کند.

منابع و ادامه بحث

گفت‌وگوی کامل مورتیمر با InfoQ جزئیات بیشتری درباره چارچوب عامل‌های بازبینی و تجربیات عملی او ارائه می‌دهد. پذیرش مدل «کد فقط‌نوشتنی» نیازمند تغییر در فرایندها، ابزارها و فرهنگ تیمی است؛ اما به شرط طراحی درست، می‌تواند بارهای تکراری را کاهش و فرصت‌های خلاقانه را افزایش دهد.

دورنما: با رشد ابزارهای عامل‌محور و خودترمیم، نقش کد به‌عنوان سندِ انسانی کم‌رنگ‌تر می‌شود و تمرکز انسان‌ها به تعریف نیازمندی‌ها، طراحی تجربه و خلق ایده‌های نو محدود خواهد شد. بازنویسی و اتوماسیون بخشی از چرخهٔ استاندارد کار خواهند شد و تیم‌ها باید برای این تحول آماده شوند.