پرش به محتوای اصلی
پرش به محتوای مقاله

تکرار کدهای تولیدشده با AI استانداردهای نرم‌افزاری را تخریب می‌کند

·۱۹ تیر ۱۴۰۵۳ دقیقه مطالعه
یادداشت
کدی بنویس که انسان بتواند نگهداری‌اش کند
کدی بنویس که انسان بتواند نگهداری‌اش کند
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

شناسایی مکانیسم «حلقه بازخورد منفی» در کدنویسی؛ جایی که خروجی‌های بی‌کیفیت AI به عنوان داده‌های آموزشی برای همان مدل در بستر پروژه عمل کرده و باعث مقاوم شدن مدل در برابر اصلاحات (Refactoring) می‌شوند.

تصور کنید یک برنامه‌نویس هستید که برای سرعت بخشیدن به تحویل پروژه، هر بار از هوش مصنوعی می‌خواهد بخش‌های تکراری کد را بنویسد. باید بدانید این راحتیِ کوتاه‌مدت، در واقع در حال آموزش مدل برای تولید نرم‌افزارهای بی‌کیفیت‌تر است.

جایگزین کردن منطق‌های بهینه با کدهای تکراری — مثل کپی کردن چندین‌باره‌ی بررسی‌های امنیتی — به مدل این پیام را می‌دهد که این میان‌برها، استایل مورد نظر پروژه هستند. در این وضعیت، مدل زبانی بزرگ (LLM) — مثل کتابخانه‌داری که میلیاردها صفحه را خوانده و حالا با همان لحن کتاب‌ها جواب می‌دهد — دست از به‌کارگیری اصول بنیادین برنامه‌نویسی می‌کشد و صرفاً عادت‌های بد موجود در کد را تقلید می‌کند.

همان‌طور که در تحلیل‌های قبلی ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، کیفیت خروجی مدل‌ها به‌شدت به بستری که در آن عمل می‌کنند وابسته است. این تغییر رفتار توسعه‌دهندگان دقیقاً زمانی رخ می‌دهد که دستیارهای کدنویسی AI در محیط‌های شغلی رایج شده‌اند. برای مثال، وقتی یک بررسی امنیتی ساده به‌جای تعریف در یک تابع مشترک، در چهار فایل مختلف کپی می‌شود، کد در کوتاه‌مدت تست‌ها را پاس می‌کند، اما «بودوی کد» (Code Smell) ایجاد می‌کند که LLM آن را از فایل‌های باز و تغییرات اخیر مخزن (Repository) جذب می‌کند.

طبق گزارش unstack.io که در ۱۰ ژوئیه ۲۰۲۶ منتشر شد، مشکل اصلی این است که LLMها مانند اسفنج عمل می‌کنند. بر اساس مستندات این گزارش، در یک سناریوی واقعی مشاهده شد که:

  • چندین نقطه اتصال (Endpoint) به یک بررسی شرطی چهارمرحله‌ای یکسان نیاز داشتند.
  • مدل برای هر درخواست جدید، دقیقاً همان منطق کپی-پیست‌شده را تولید کرد.
  • در نهایت، LLM از بازنویسی (Refactor) کد امتناع کرد، مگر اینکه به‌صورت دستی مجبور شود؛ زیرا تکرار را به عنوان معماری استاندارد پروژه شناسایی کرده بود.

این بدان معناست که هر میان‌بری که در کد ادغام شود، یک سیگنال آموزشی است. اگر برنامه‌نویسی اصل DRY (تکرار نکنید) را نادیده بگیرد چون فکر می‌کند AI «بعداً درستش می‌کند»، در واقع در حال برون‌سپاریِ تخریب استانداردهای خود است. مدل در خلأ عمل نمی‌کند، بلکه وضعیت فعلی کد را می‌خواند تا خط بعدی را بنویسد. این پدیده شباهت زیادی به لغزش‌های رفتاری در سیستم‌های خودکار دارد که در بررسی مکانیزم‌های مهار لغزش عامل‌های هوشمند با استفاده از درگاه‌های اعتبارسنجی به آن پرداختیم.

برای یک توسعه‌دهنده حرفه‌ای، این موضوع یک هزینه پنهان را برملا می‌کند: «بدهی فنیِ AI». سرعت تحویل اولیه بالا می‌رود، اما هزینه نگهداری بلندمدت افزایش می‌یابد. شما نگهداری کد را به AI نمی‌سپارید، بلکه با ارائه نمونه‌های پراکنده و تکراری، به آن می‌آموزید که نگهدارنده بدتری باشد.

برای جلوگیری از این وضعیت، باید طوری کد بزنید که انگار یک انسان — و نه یک مدل — مسئول اصلی نگهداری آن است. این یعنی سخت‌گیری در تعریف توابع مشترک و انتزاعات تمیز، حتی وقتی LLM مسیر سریع‌تر و کثیف‌تری را پیشنهاد می‌دهد. امروز آستین بالا زدن برای اصلاح دستی یک الگو، مانع از شکست کامل پرامپت‌ها در آینده می‌شود.

گام بعدی شما

  • هرگاه AI کدی تکراری پیشنهاد داد، آن را به یک تابع مشترک تبدیل کنید و سپس نسخه اصلاح‌شده را به مدل نشان دهید.
  • از ابزارهای تحلیل استاتیک کد (Linter) برای شناسایی تکرارها پیش از ادغام در مخزن استفاده کنید.
  • در پرامپت‌های خود صراحتاً ذکر کنید که «رعایت اصل DRY اولویت دارد و تکرار کد غیرقابل قبول است».

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این مسئله بر پایه تجربه عملی نشان می‌دهد که کیفیت کد در دوران AI دیگر فقط به مهارت برنامه‌نویس، بلکه به «بهداشت داده‌ای» مخزن کد وابسته است. نادیده گرفتن این موضوع، اعتبار فنی شرکت‌ها را در بلندمدت به دلیل افزایش هزینه‌های نگهداری تخریب می‌کند.

تأثیر برای ایران

برای توسعه‌دهندگان ایرانی که در پروژه‌های پیمان‌کاری با ددلاین‌های شدید کار می‌کنند، وسوسه استفاده از این میان‌برهای AI زیاد است، اما منجر به بدهی فنی شدیدی می‌شود که هزینه پشتیبانی پروژه را در سال‌های آتی به‌شدت افزایش می‌دهد.

·نگاه ما
تحریریه دات‌هوش

این پدیده نشان می‌دهد که مدل‌های زبانی بیش از آنکه «دانش» داشته باشند، «تقلیدگر» هستند. خطر واقعی این است که توسعه‌دهندگان به جای ارتقای سطح مدل، به‌طور ناخودآگاه سطح استانداردهای مهندسی خود را با مدل پایین می‌آورند تا با خروجی‌های سریع‌تر سازگار شوند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.