محمدتقی نقیبی
محمدتقی نقیبی
خواندن ۶ دقیقه·۱ سال پیش

کد ریویو : چگونه دشمن بسازیم

گاهی اوقات افراد در محل کار شما را آزار می دهند و شما احساس می کنید که باید از آنها انتقام بگیرید. آنها را مجبور کنید که برای بی توجهی هایی که در حق شما کردند، هزینه بدهند. اغلب واقعاً راهی وجود ندارد. اما اگر در زمینه توسعه نرم افزار کار می کنید، پس همیشه راهی وجود دارد. و اون چیزی نیست جز کد ریویو!

کد ریویو یا بازبینی کد زمانی که به درستی انجام بشود، می تواند ابزاری عالی برای کمک به بهبود کیفیت کد و گسترش دانش در تیم باشد و به کاهش خطاها کمک کند. با این حال اگر به درستی انجام نشود، می تواند دردسر بزرگی برای همه باشد که در نهایت منجر به ایجاد دشمنی بین توسعه دهندگان می شود. جای فوق العاده ای برای انتقام گیری از طریق اقدامات passive-aggressive.

اونها قوری چای را پر نمی کنن؟ ۳ سال پیش زمانی که نفهمیدن شما در دفتر هستین به شما صبح بخیر نگفتن؟ الان وقتشه که در طول کد ریویو از اونها انتقام بگیریم!

قدم اول : کامنت های مربوط به سبک کد یا code style

اولین قدم در این جنگ علیه همکاران بی خبرتان، کامنت های مربوط به code style است. اکثر شرکت ها دارای دستورالعمل های code style هستند. آنها را یاد بگیرید! و سپس شروع به درخواست تغییراتی کنید که به صراحت ذکر نشده اند. اگر دستورالعمل های code style چیزی را به شکل دقیق ذکر نکرده اند، اینجا فرصت مناسبی برای درخواست تغییرات بی فایده ای است که فقط باعث کار بیشتر که هدف شماست می شود.

آیا آنها به طور صحیح متدها را در کلاس تست type-hint کرده اند؟ نه؟ بهتر است به آنها بگویید که void را اضافه کنند تا در آینده برای همه روشن شود که این unit test چیزی برنمی گرداند!

آیا آنها یک متغیر را به بیش از حد طولانی نامگذاری کرده اند؟ آره؟ بهتر است آن را کوتاه کنند.

اینجا از شرط های Yoda استفاده نشده است؟ از آنها بخواهید آن را برعکس بنویسند.

با نوشتن کامنت های code style همکارتان را خرد کنید.

قدم دوم: درخواست تغییرات بیهوده

قدم اول آزاردهنده است، اما به تنهایی نمی تواند نفرت را در قلب دشمن شما ایجاد کند. شما باید به کار خود ادامه دهید. و قدم بعدی درخواست تغییرات بیهوده است.

اگر دو راه برای انجام کاری وجود دارد، از آنها بخواهید کد را به گونه‌ای تغییر دهند که به روش شما انجام شود. به دلایلی مانند معایب روش شما یا مزایای روش آنها گوش نکنید. شما باید در رشته نظراتی در مورد اینکه چرا باید این تغییر را انجام دهند، درگیر شوید.
می توانید با چیزی شبیه به این به آنها بگویید که دارند غیرمنطقی فکر می کنند:

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

همکاران خود را وادار کنید تا بخش زیادی از روز خود را صرف بازنویسی کدی کنند که از قبل کاملاً کار می کرد.

قدم سوم: تاخیرهای طولانی

پاسخ دادن به نظرات، وقتتون رو که از سر راه نیاوردین. حداقل ۲۴ ساعت، شاید ۴۸ ساعت، طول بکشد تا هر کاری مربوط به کد ریویو را انجام دهید. هنگامی که به چالش کشیده می شوید، ادعا کنید که به کارهای دیگری مشغول هستید.

هدف در اینجا این است که مرج ریکوئست آنها را بیات کنید. مرج ریکوئست های باز شده به عنوان بدهی فنی در نظر گرفته می‌شوند زیرا نگهداری آنها کار لازم دارد. این کار آزاردهنده و خسته کننده است. بنابراین، می‌خواهید آن مرج ریکوئست را تا زمانی که ممکن است باز نگه دارید، به طوری که آنها مجبور شوند زمان زیادی را صرف برطرف کردن کد کانفلیکت کنند.

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

اگر آنها مجبور نشده‌اند دو تا سه بار در هر مرج ریکوئست کد کانفلیکت ها را برطرف کنند، شما خیلی سریع پاسخ می‌دهید!

قدم چهارم: از آنها بخواهید که باگ اضافه کنند

درخواست تغییر یک راه عالی برای افزودن کار است، اما درخواست تغییراتی که عوارض جانبی منفی ایجاد می کند، یک راه فوق العاده برای افزودن کار است. آنها باید برای اضافه کردن تغییر کار کنند و سپس زمانی که باگ کشف شد، احمق به نظر می رسند و سپس باید آن باگ را برطرف کنند.

قدم پنجم: در درخواست‌های کد ریویو، تغییرات code style ایجاد کنید

هر مرج ریکوئستی که باز می کنید باید شامل حداقل ۵۰ درصد تغییرات code style و غیر ضروری باشد تا پیدا کردن تغییرات فانکشنال واقعی در مرج ریکوئست آنقدر سخت شود که همکارتان مرج های شما را کورکورانه بپذیرد.

قدم ششم: مرج ریکوئست های مگا سایز ایجاد کنید

کد ریویو زمانی که ۱۰ تا ۳۰ خط کد وجود دارد، آسان است. اما آسان چیزی نیست که اینجا به دنبال آن هستید. می‌خواهید وقتی همکارتان درخواست بازبینی کد را از شما دریافت می‌کند، وحشت کند. این بدان معنی است که همه مرج ریکوئست های شما باید شامل ۱۰۰۰ خط تغییر در حداقل ۱۰ فایل باشد.

همچنین درخواست اقدام سریع در مورد این مرج ریکوئست ها را داشته باشید. آنها بدهی فنی هستند و شما نمی‌خواهید کد کانفلیکت ها را خودتان برطرف کنید. بنابراین، تا زمانی که مرج ریکوئست شما باز است، همه را آزار دهید. هیچ پاسخی در مورد اینکه چرا شما در پاسخ به مرج ریکوئست های افراد دیگر کند هستید، ندهید و به آنها اطلاع دهید که درخواست‌های باز شما مهم‌تر هستند و مکرراً بدهی فنی ناشی از باز بودن این مرج ریکوئست را ذکر کنید.

قدم هفتم: نظرات آنها را نادیده بگیرید

تا اینجا شما در طول کد ریویو به آنها ضربه زده اید. ممکن است بخواهند از شما انتقام بگیرند. یک راه عالی برای جلوگیری از هرگونه ضربه برگشتی در طول کد ریویو، نادیده گرفتن آنهاست. آیا آنها کامنتی می گذارند و خواستار تغییر هستند؟ بروید و از دوست خود بخواهید که مرج ریکوئست شما را تأیید کند و بدون رسیدگی به نظر آنها، آن را مرج کند.

مانند آبی که از گرده ی اردک می ریزد بگذارید نظرات آنها هم از روی مرج ریکوئست های شما بریزد.

نتیجه گیری

زمانی که این مراحل به طور مکرر و مداوم به مدت چند ماه انجام شود، دشمن شما از بی توجهی هایی که در حق شما کرده است پشیمان خواهد شد.

کارهایی که نباید انجام دهید اگر می خواهید دشمن شما از کد ریویو لذت ببرد:

  • ادیتور خود را به شکلی تنظیم کنید که به طور خودکار به code styleها رسیدگی کند.
  • فقط زمانی کامنت دهید که تغییرات موجود در مرج ریکوئست را بهبود می‌بخشند.
  • به سرعت به مرج ریکوئست ها پاسخ دهید و روزانه زمانی را برای کد ریویو برنامه‌ریزی کنید.
  • در مرج ریکوئست ها، اطمینان حاصل کنید که تغییرات دارای تست هستند.
  • هنگام اعمال قوانین جدید code style، مرج ریکوئست های جدا باز کنید.
  • مرج ریکوئست های کوچک باز کنید.
  • به همه نظرات پاسخ دهید، خواه موافق باشید یا دلیل عدم موافقت خود را بیان کنید.


پیروز باشید...

منبع اصلی


کد ریویوبازبینی کدبررسی کدcode review
بدون تلاش هیچی به دست نمیاد و همیشه خاطرم میمونه برای بدست آوردن چیزی که نیاز به زمان داره باید صبر کنم.
شاید از این پست‌ها خوشتان بیاید