پرش به محتوا
آموزش و مهارتراهنما

بازبینی کد (Code Review)؛ مهارتی که تیم‌ها را حرفه‌ای می‌کند

اامیر رضایی۱۹ تیر ۱۴۰۵۳ دقیقه مطالعه۲۳۰ بازدید
بازبینی کد (Code Review)؛ مهارتی که تیم‌ها را حرفه‌ای می‌کند

آداب و روش بازبینی کد برای برنامه‌نویسان تازه‌کار؛ چطور بازخورد فنی بدهیم و بشنویم که کیفیت کد بالا برود و رابطه‌ها خراب نشود.

بازبینی کد چیست و چرا وجود دارد؟

بازبینی کد یعنی قبل از اینکه تغییری وارد مخزن اصلی شود، همکارتان آن را می‌خواند و نظر می‌دهد. اگر تازه وارد تیم شده‌اید، شاید این رسم در نگاه اول «بازداری» به نظر برسد؛ اما حقیقت معکوس است: بازبینی، لایهٔ ایمنی و کلاس درسِ هم‌زمان است. خطاها قبل از رسیدن به کاربر پیدا می‌شوند، دانش بین اعضای تیم پخش می‌شود و کد، مالکیتِ جمعی پیدا می‌کند به‌جای اینکه جزیره‌های شخصی باشد.

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

چطور کد دیگران را بررسی کنیم؟

  • اول چرا را بفهمید: توضیحات PR را بخوانید و بفهمید چه مسئله‌ای حل می‌شود؛ بدون فهمِ هدف، بازخوردتان بی‌ربط می‌شود.
  • دو دور بخوانید: دور اول برای فهم کلی، دور دوم برای جزئیات؛ کامنت‌های دور دوم دقیق‌ترند.
  • از مهم به کم‌اهمیت کامنت بگذارید: اول باگ و ریسک، بعد ساختار، آخر هم سبک و نام‌گذاری؛ وقتِ محدود را روی اثرگذارترین‌ها بگذارید.
  • سؤال هم کامنت است: «چرا این‌جا از این روش استفاده شد؟» گاهی از ده پیشنهاد آموزنده‌تر است؛ هم یاد می‌گیرید و هم نویسنده را به بازاندیشی دعوت می‌کنید.
  • تشکر و تحسین را فراموش نکنید: اشاره به کدِ خوب، بازبینی را از بازجویی به گفت‌وگو تبدیل می‌کند.

هنر بازخورد: تیز اما محترمانه

تفاوت بازبینِ محبوب و بازبینِ ترسناک، در فرمول جملات است:

  • به کد نقد کنید، نه به نفر: «این تابع سه کار انجام می‌دهد، جدا کنیم؟» به‌جای «شما همه‌چیز را توی یک تابع می‌ریزید».
  • پیشنهاد بدهید، نه فقط ایراد: «اینجا با یک جدول هش سریع‌تر می‌شود» از «این کند است» به‌مراتب سازنده‌تر است.
  • شدت را مشخص کنید: «بلاک‌کننده»، «ترجیح شخصی» یا «سؤال»؛ نویسنده باید بداند روی چه چیزی وقت بگذارد.
  • فرض خیر بگذارید: کد عجیب، معمولاً داستانی دارد؛ شاید محدودیت‌هایی بوده که شما نمی‌بینید.

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

وقتی کد شما بازبینی می‌شود

  • PR کوچک بفرستید: پانصد خط تغییر، بازبینیِ سطحی می‌گیرد؛ پنجاه خط، بازبینیِ عمیق. کوچک‌فرستادن، خودش مهارت است.
  • توضیحات خودتان را بنویسید: چه کردید، چرا این راه را رفتید و چه چیزی را مطمئن نیستید؛ بازبین را راهنمایی کنید.
  • کامنت‌ها را شخصی نگیرید: نقید به کد، نقید به شما نیست؛ جداسازیِ این دو، بلوغ حرفه‌ای است.
  • جواب بدهید، حتی کوتاه: برای هر کامنت، انجام شد یا دلیل مخالفت؛ سکوت، گفت‌وگو را می‌کُشد.
  • مخالفتِ مستدل آزاد است: اگر با نظری موافق نیستید، با استدلال بگویید؛ گفت‌وگوی فنی سالم، از تسلیمِ بی‌صدای ارزشمندتر است.

چک‌لیست یک بازبینی خوب

  • آیا کد مسئلهٔ اعلام‌شده را حل می‌کند؟ آیا جایی خرابش می‌کند؟
  • آیا تستِ کافی دارد؟ حالت‌های خالی و خطا فکر شده‌اند؟
  • آیا نام‌ها گویاست و توابع کوچک و قابل‌فهم‌اند؟
  • آیا امنیت و کارایی در سطح قابل‌قبول است؟

در سال اول کار، بازبینی بهترین معلمِ رایگان شماست؛ هر کامنتِ بازبین، یکی از اشتباهات سال اول برنامه‌نویسی است که زودتر از موعد به شما نشان داده می‌شود. جایی بنشینید که بازبینی جدی است؛ همان جا سریع‌ترین رشد را می‌بینید و خیلی زود، خودتان بازبینی‌کننده‌ای می‌شوید که تازه‌کارها از کامنت‌هایش لذت می‌برند.

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

این مطلب برایتان مفید بود؟

با پسندیدن، به ما کمک می‌کنید مطالب بهتری منتشر کنیم.

مطالب مرتبط

دو طرف میز مذاکره با برگهٔ پیشنهاد شغلی و ماشین‌حساب روی میز؛ نماد مذاکره حقوق و پیشنهاد شغلی
آموزش و مهارت

مذاکره حقوق در مصاحبه و پیشنهاد شغلی؛ بدون ریسک‌کردن فرصت

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

تحریریه امروزینو
۱۴۰۵/۰۸/۰۱۵ دقیقه
فلش‌کارت‌ها و تقویم مرور فاصله‌دار با فواصل ۱، ۳، ۷، ۱۴ و ۳۰ روز
آموزش و مهارت

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

نظریه را بلدید اما سیستم ندارید؟ راهنمای عملی راه‌اندازی مرور فاصله‌دار: چه چیزی ارزش فلش‌کارت‌شدن دارد، شش قاعدهٔ کارت خوب، جدول ۱-۳-۷-۱۴-۳۰ و روتین نگهداری روزی ۱۵ دقیقه.

تحریریه امروزینو
۱۴۰۵/۰۸/۰۱۵ دقیقه
مقایسهٔ دو حالت مطالعه؛ تماشای منفعل ویدیو در برابر یادداشت‌برداری فعال
آموزش و مهارت

یادگیری فعال و منفعل؛ تفاوت واقعی و راه تبدیل مطالعهٔ منفعل به فعال

چرا سه ساعت تماشای ویدیو هیچ مهارتی نمی‌سازد؟ تفاوت واقعی یادگیری فعال و منفعل، توهم روانی‌بودن، پنج تکنیک عملی تبدیل و نسبت طلایی ۳۰ به ۷۰ در روتین هفتگی.

تحریریه امروزینو
۱۴۰۵/۰۸/۰۱۵ دقیقه
طرح اولیهٔ یک پروژه روی میز کار؛ ساختن به‌جای فقط تماشای دوره
آموزش و مهارت

یادگیری با پروژه؛ از جمع‌کردن دوره‌ها تا ساختن مهارت واقعی

چرا دوره‌دیدن به‌تنهایی مهارت نمی‌سازد و چطور یادگیری را دور یک پروژهٔ واقعی بچینیم؟ نردبان انتخاب پروژه، چرخهٔ ساخت و یادگیری ۷۰/۳۰، دو مثال واقعی و مسیر رسیدن به نمونه‌کار.

تحریریه امروزینو
۱۴۰۵/۰۸/۰۱۶ دقیقه