درود دوستان 👋 میخوایم ببینیم که چطوری و با چه تکنیکهایی میتونیم به شکل سازنده و مفید کدهای همکارانمون رو بررسی کنیم و به قول معروف Code Review انجام بدیم. این پست از سری پستهای «من مهندس نرمافزار هستم» هست که توی اونها نکات فنی و غیر فنی که ما رو به یک مهندس نرمافزار خوب تبدیل میکنه رو بررسی میکنیم.
بریم که نکات رو بررسی کنیم 🔥
۱. احترام، اصلِ اول کد ریویو
توی کد ریویو احترام حرف اول رو میزنه. احترام به خود، احترام به توسعهدهنده، احترام به پروژه و زحمات دیگران. هنگام کد ریویو ممکنه با کدهایی مواجه بشیم که از نظر ما عقلانی به نظر نمیاد. توی این شرایط هیچوقت نباید شخص کدنویس رو مخاطب قرار بدیم و مثلاً بگیم «چرا از تابع Generator استفاده کردی در صورتی که اینجا هیچ منفعتی نداره؟». این کار ممکنه فضای منفی و رقابتی رو بین ما و همکارمون به وجود بیاره که اتفاق خوشایندی نیست.
میتونیم با یک بیان دوستانهتر و سازندهتر احترام شخص کدنویس رو حفظ کنیم و فقط کدهای نوشتهشده رو مخاطب قرار بدیم و بگیم «تابع Generator توی این شرایط پیچیدگی رو افزایش میده و روی عملکرد برنامه تأثیر منفی میذاره. شاید یک روش سادهتر و بهینهتر استفاده از توابع عادی باشه».
۲. همیشه توضیح کافی بدیم
کد ریویو یکی از بهترین فرصتها برای یادگیری میتونه باشه که توی اون با نظرات و ایدههای دیگران آشنا میشیم. اگه شخصی از شما درخواست کد ریویو کرده، و اگه درخواست تغییراتی داریم، بجای اینکه صرفاً بگیم «از useState استفاده نکن»، میبایست با یک توضیح مختصر و سازنده درخواستمون رو اعلام کنیم تا علتش برای کدنویس مشخص باشه. مثلاً میتونیم بگیم «استفاده از useState توی این شرایط باعث رندرهای بیدلیل میشه کیفیت برنامه رو پایین میاره. بهتره که از useRef استفاده کنیم که تأثیری روی رندر شدن کامپوننت نداره».
وقتی توضیحاتی رو ارائه میدیم، شخص توسعهدهنده خیلی راحتتر میتونه دلیل پشت نکات شما رو متوجه بشه، از اون یاد بگیره و توی آینده از ایدهٔ شما استفاده کنه.
۳. نظراتمون رو با علامتهایی درجهبندی کنیم
برای مثال اگه درخواستمون خیلی جدی نیست و صرفاً یک توصیه و ترفند رو میخوایم به اشتراک بذاریم، میتونیم اون رو با برچسب «اختیاری» شروع کنیم و بگیم «اختیاری: خوبه که این قسمت رو منتقل کنی به یک فایل جدا». و یا از «صرفاً جهت اطلاع» برای مواردی که صرفاً میخوایم یک نکته انتقال بدیم: «صرفاً جهت اطلاع: این کد خیلی شبیه کدی هست که توی فایل retryHandler.ts داریم. خوبه که یه نگاهی بهش بندازی»
این روش کمک میکنه که به شخص توسعهدهنده منظورمون رو بهتر برسونیم. در غیر این صورت ممکنه شخص هر نظری رو به عنوان «درخواست تغییر» دریافت کنه و ناخواسته تغییراتی رو اعمال کنه که باعث هدر رفت وقت و انرژی و هزینه میشه.
