کدنویسی با AI

AI code review

AI code review — راهنمای فارسی از مجموعهٔ «کدنویسی با AI» در وبلاگ آیرا. بازنویسی‌شده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

نوشتهٔ به‌روزرسانی: ۴ دقیقه مطالعه
تصویر مقالهٔ AI code review

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

AI code review داره این معادله رو تغییر می‌ده — نه با جایگزین کردن انسان، بلکه با کوتاه کردن فاصله بین «کد نوشته شد» تا «کد ریویو شد».

ریویوی انسانی چه محدودیت‌هایی داره؟

قبل از اینکه بریم سراغ AI، باید بفهمیم چرا ریویوی انسانی تنها کافی نیست:

  • تأخیر: توی یه تیم شلوغ، PR ممکنه ۲۴ تا ۷۲ ساعت صبر کنه تا یه نفر نگاه کنه
  • خستگی: آدم‌ها بعد از ریویوی سومین فایل در یه جلسه، دقتشون کم می‌شه
  • ناهماهنگی: هر ریویوکننده استانداردهای متفاوتی داره
  • محدودیت دانش: کسی که متخصص backend هست، ممکنه باگ‌های امنیتی frontend رو نبینه

AI code review چی هست و چی نیست؟

هست: یه لایهٔ اضافه قبل (یا موازی) با ریویوی انسانی که:

  • خطاهای نحوی و منطقی رایج رو پیدا می‌کنه
  • مشکلات امنیتی شناخته‌شده رو علامت می‌زنه (مثل SQL injection، XSS)
  • کد رو با best practice های معمول مقایسه می‌کنه
  • فوری فیدبک می‌ده — نه بعد از ۴۸ ساعت

نیست: جایگزین ریویوکنندهٔ انسانی. معماری سیستم، trade-off های تجاری، سیاست‌های تیم، و context پروژه رو AI نمی‌فهمه.

ابزارهای اصلی AI code review

GitHub Copilot Code Review

Copilot از ۲۰۲۴ قابلیت ریویو اتوماتیک PR رو داره. وقتی یه PR باز می‌کنی، Copilot می‌تونه کامنت‌هایی بده روی:

  • باگ‌های احتمالی
  • کد تکراری که می‌شه refactor کرد
  • مشکلات performance

ولی یادت باشه Copilot context کامل پروژه رو نمی‌دونه — فقط diff رو می‌بینه.

CodeRabbit

یه ابزار اختصاصی AI code review هست که مستقیم به GitHub/GitLab وصل می‌شه. خودکار PR ها رو ریویو می‌کنه و کامنت‌های inlineای می‌ده. نسخهٔ رایگان برای repo های public موجوده.

Sourcery

بیشتر روی Python تمرکز داره. کد رو ریویو می‌کنه و پیشنهاد refactor با دلیل می‌ده. مستقیم در IDE و CI/CD یکپارچه می‌شه.

استفاده از مدل‌های چت (ChatGPT، Claude)

ساده‌ترین روش: کدت رو کپی کن، بچسبون، و بگو «این کد رو ریویو کن. دنبال باگ، مشکل امنیتی، و بهبود خوانایی باش.»

این روش برای snippet های کوچیک خوب کار می‌کنه. برای پروژه‌های بزرگ، context از بین می‌ره.

چطور از AI code review بهترین استفاده رو بکنی؟

۱. پرامپت خوب بده

اگه از مدل‌های چت استفاده می‌کنی، یه پرامپت ضعیف جواب ضعیف می‌ده. این ساختار رو امتحان کن:

این یه [زبان] [نوع کد: REST API / utility function / database query] هست.
دنبال اینا بگرد:
- باگ‌های منطقی
- مشکلات امنیتی
- عملکرد (performance)
- خوانایی و نگهداری

[کد]

۲. Context بده

بگو «این یه endpoint احراز هویته» یا «این تابع هر دقیقه هزار بار صدا زده می‌شه» — AI با این context فیدبک‌های دقیق‌تری می‌ده.

۳. فیدبک رو فیلتر کن

AI بعضی وقتا overly conservative هست — چیزهایی رو پیشنهاد می‌ده که در context خاص پروژه درست نیستن. همه چیز رو blind قبول نکن.

۴. یه checklist امنیتی داشته باش

بعضی دسته‌های مشکل رو همیشه بگو چک کنه:

  • ورودی‌های کاربر validate می‌شن؟
  • Secret در کد hardcode نشده؟
  • Error handling درسته؟
  • Log ها اطلاعات حساس لیک نمی‌کنن؟

یه مثال واقعی

فرض کن این کد Python داری:

def get_user(username):
    query = f"SELECT * FROM users WHERE username = '{username}'"
    return db.execute(query)

اگه این رو به Claude بدی و بگی «ریویو کن»، می‌گه:

«این کد در برابر SQL injection آسیب‌پذیره. اگه username برابر ' OR '1'='1 باشه، query همهٔ کاربران رو برمی‌گردونه. از parameterized queries استفاده کن: db.execute("SELECT * FROM users WHERE username = ?", (username,))»

این نوع باگ ساده‌ست ولی توی ریویو انسانی زیر فشار deadline ممکنه از قلم بیفته.

محدودیت‌های جدی AI code review

context پروژه: AI نمی‌دونه چرا این تصمیم معماری گرفته شده، چه constraint هایی وجود داشتن، یا این کد باید با کدوم legacy system کار کنه.

باگ‌های پیچیده: باگ‌هایی که بستگی به state خاص یا race condition دارن، معمولاً از دید AI فرار می‌کنن.

هزینه و محدودیت پرامپت: فایل‌های بزرگ و PR های طولانی context window رو پر می‌کنن.

false positive: AI گاهی چیزهایی رو «مشکل» علامت می‌زنه که intentional هستن. این نویز به ریویوکنندهٔ انسانی اضافه می‌شه.

چطور در workflow تیم جا بده؟

بهترین رویکرد اینه که AI code review رو به عنوان «pre-review» تعریف کنی:

۱. توسعه‌دهنده کد می‌نویسه ۲. قبل از باز کردن PR، AI review رو اجرا می‌کنه (یا به صورت اتوماتیک با CI/CD) ۳. مشکلات واضح رو برطرف می‌کنه ۴. PR رو باز می‌کنه — الان ریویوکنندهٔ انسانی وقتش رو برای نکات عمیق‌تر می‌ذاره، نه چک کردن typo و باگ‌های بدیهی

این چرخه وقت ریویوکنندهٔ انسانی رو آزاد می‌کنه برای جاهایی که واقعاً ارزش داره.

همچنین بخوان

#کدنویسی با AI

مرور کد با کمک هوش مصنوعی — گام‌به‌گام

استفاده از AI برای پیدا کردن باگ، بهبود خوانایی و افزایش امنیت کد.

زمان تخمینی: 5 دقیقه
  1. ۱

    فایل را به‌صورت کامل بفرستید

    تکه‌های کوچک باعث می‌شود AI زمینهٔ کلی را از دست بدهد. کل فایل + توضیح هدف.

  2. ۲

    چک‌لیست مشخص بخواهید

    «این کد را برای: ۱) باگ‌های احتمالی، ۲) edge case، ۳) امنیت، ۴) خوانایی مرور کن».

  3. ۳

    هر یافته را بسنجید

    AI پیشنهاد می‌دهد، شما تصمیم می‌گیرید. بعضی پیشنهادها بهبود واقعی است، بعضی سلیقه‌ای.

  4. ۴

    تست بنویسید

    برای هر باگ پیداشده، یک تست بنویسید. این تنها راه است که مطمئن شوید رفع شد و دوباره برنمی‌گردد.

  5. ۵

    یاد بگیرید

    الگوهای تکراری در یافته‌ها را ثبت کنید. این بهترین درس برنامه‌نویسی است که می‌گیرید.

ادامهٔ مسیر

همهٔ مقاله‌ها ←

بیشتر در «کدنویسی با AI»