بررسی کد (Code Review)
بررسی کد فرآیندی است که در آن اعضای تیم کد یکدیگر را قبل از merge بررسی میکنند. به حفظ کیفیت کد، اشتراک دانش و شناسایی زودهنگام باگها کمک میکند.
گردش کار بررسی کد
۱. ایجاد Pull Request
# ایجاد branch ویژگی
git checkout -b feature/new-feature
# ایجاد تغییرات و commit
git add .
git commit -m "افزودن ویژگی جدید"
git push origin feature/new-feature
سپس یک pull request در گیتییار ایجاد کنید.
۲. درخواست بررسی
در pull request:
- روی "بررسیکنندگان" در نوار کناری راست کلیک کنید
- اعضای تیم را انتخاب کنید
- اختیاری کامنتی اضافه کنید که روی چه چیزی تمرکز کنند
۳. بررسی کد
بررسیکنندگان باید:
- تغییرات کد را با دقت بخوانند
- هدف و زمینه را درک کنند
- به دنبال باگها و موارد خاص باشند
- تأیید کنند کد از استانداردها پیروی میکند
- در صورت نیاز تغییرات را محلی تست کنند
ویژگیهای بررسی
مشاهده تغییرات
نمای Diff:
- مشاهده تمام تغییرات کنار هم
- اضافات و حذفهای برجسته
- برجستهسازی سینتکس
- Diff تقسیمشده یا یکپارچه
تاریخچه Commit:
- مشاهده تمام commit ها در PR
- دیدن پیامهای commit
- ردیابی تغییرات در طول زمان
کامنتهای درونخطی
روی خطوط خاص کامنت بگذارید:
- روی شماره خط hover کنید
- روی آیکون "+" کلیک کنید
- کامنت خود را بنویسید
- روی "افزودن کامنت تکی" یا "شروع بررسی" کلیک کنید
وضعیتهای بررسی
کامنت:
- بازخورد عمومی
- بدون تأیید یا رد
- پرسیدن سوالات یا پیشنهاد بهبودها
تأیید:
- کد آماده merge است
- تمام نگرانیها برطرف شده
- استانداردهای کیفیت را دارد
درخواست تغییرات:
- مسائل باید قبل از merge رفع شوند
- بازخورد خاص ارائه شده
- نویسنده باید نگرانیها را برطرف کند
بهترین شیوهها
برای نویسندگان
قبل از ارسال:
- ✅ ابتدا کد خود را self-review کنید
- ✅ اطمینان حاصل کنید کد کامپایل میشود و تستها پاس میشوند
- ✅ توضیح PR واضح بنویسید
- ✅ تغییرات بزرگ را به PR های کوچکتر تقسیم کنید
- ✅ برای منطق پیچیده کامنت اضافه کنید
- ✅ برای ویژگیهای جدید تست شامل کنید
در طول بررسی:
- ✅ به تمام کامنتها پاسخ دهید
- ✅ محترمانه و حرفهای باشید
- ✅ استدلال خود را توضیح دهید
- ✅ تغییرات درخواستی را سریع انجام دهید
- ✅ بهروزرسانیها را به همان branch push کنید
- ✅ از بررسیکنندگان به خاطر زمانشان تشکر کنید
برای بررسیکنندگان
فرآیند بررسی:
- ✅ سریع بررسی کنید (ظرف ۲۴ ساعت)
- ✅ سازنده باشید، نه انتقادی
- ✅ چرا را توضیح دهید، نه فقط چه چیزی را
- ✅ بهبودهای خاص پیشنهاد دهید
- ✅ شیوههای خوب را تأیید کنید
- ✅ اگر تغییرات پیچیده هستند محلی تست کنید
انواع کامنت:
سوالات:
"اگر این آرایه خالی دریافت کند چه اتفاقی میافتد؟"
پیشنهادات:
"استفاده از map را در اینجا برای عملکرد بهتر در نظر بگیرید"
نکات ریز:
"نکته: فاصله اضافی در خط ۴۲"
موانع:
"این باید قبل از merge حالت خطا را مدیریت کند"
چکلیست بررسی کد
عملکرد
کیفیت کد
امنیت
عملکرد
تست
مستندات
رفع نگرانیهای بررسی
ایجاد تغییرات
# ایجاد تغییرات درخواستی
# ویرایش فایلها...
# Commit تغییرات
git add .
git commit -m "پاسخ به کامنتهای بررسی"
# Push برای بهروزرسانی PR
git push origin feature/new-feature
علامتگذاری به عنوان حلشده
- کامنت را در کد یا مکالمه برطرف کنید
- اگر بررسیکننده هستید روی "حل مکالمه" کلیک کنید
- اطمینان حاصل کنید تمام تغییرات درخواستی برطرف شدهاند
بررسیهای پیگیری
پس از ایجاد تغییرات:
- بررسیکنندگان کد بهروز شده را مجدداً بررسی میکنند
- اگر راضی هستند تأیید میکنند
- اگر لازم است درخواست تغییرات بیشتر میکنند
- وقتی تمام نگرانیها برطرف شد merge میکنند
Merge
چه زمانی Merge کنیم
- ✅ تمام تغییرات درخواستی برطرف شده
- ✅ حداقل یک تأیید (یا تعداد مورد نیاز)
- ✅ تمام بررسیهای CI در حال پاس شدن
- ✅ بدون تداخل merge
- ✅ تیم موافق است آماده است
روشهای Merge
Merge Commit:
- تمام commit ها را حفظ میکند
- یک commit merge ایجاد میکند
- بهترین برای branch های ویژگی
Squash و Merge:
- تمام commit ها را در یکی ترکیب میکند
- تاریخچه تمیز
- بهترین برای PR های کوچک
Rebase و Merge:
- commit ها را روی branch هدف rebase میکند
- تاریخچه خطی
- بهترین برای حفظ تاریخچه تمیز
مراحل بعدی