یک راهنمای عملی برای بررسی کد بهتر

@ bob.jsBob Fornal

REAL، FUN، GEEK که علاقه زیادی به Front-End دارد!

A مرور کد بخشی از روند توسعه است که در آن یک توسعه دهنده و همکارانشان با هم کار می کنند و به دنبال اشکالاتی در برخی از کدها هستند که ممکن است برای آنها آماده باشد رهایی. در چنین لحظه ای می توانید توسعه دهنده کد باشید یا یکی از بازرسان.

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

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

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

نحوه سازماندهی من در اینجا است:

  • تجربیات مرور کد من.
  • رهنمودهای بررسی عمومی کد.
  • مرورهای کد به عنوان یک توسعه دهنده.
  • مرورهای کد به عنوان یک مرورگر.
  • چه کسی باید بررسی کند؟
  • فرهنگ مرور کد مثبت
  • پیامدهای ناخودآگاه بررسی یک کد
  • تجارب من …

    مرور کد کاربر نهایی (بدون پردازش)

    هنگامی که من به عنوان یک توسعه دهنده کار را شروع کردم ، به یاد می آورم که هیچ فرآیند بررسی کد ندارم. در واقع ، تنها بررسی ای که من کردم این بود که اعلانی مبنی بر اینکه برخی از کدها به درستی کار نمی کنند وقتی مشتری مشکل را گزارش می کند. خیلی سریع یاد گرفتم که console.log با نسخه های قبلی IE کارهای ناخوشایندی انجام داد.

    همه به من خیره می شوند (تمرین هفتگی هدف)

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

    همه مرور می کنند (یادگیری پذیرش انتقاد)

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

    چند بار اول که کد من تحت فشار قرار گرفت ، بازبینی کد دردناک بود (و هیچ سرنخی از آنچه انتظار داشت) … و من کاملاً معتقدم که من تقریباً همان اندازه که برای تهیه کد برای پروژه تولید کردم ، در مورد بررسی کد یاد می گرفتم.

    چگونه یک فرد در این زمینه مهارت کافی دارد؟

    ما یک بازبینی استثنایی در این تیم داشتیم که نه تنها بینش استثنایی در مورد کد پیدا کرد ، بلکه او این کار را به گونه ای مدیریت کرد که باعث شود بدون درد شود. به دلیل این تعامل ، من وقت گذاشتم و بررسی کردم که چگونه می توانم این نوع تلاشها را تکرار کنم (بخش بدون درد … بینشی که می دانم با گذشت زمان حاصل می شود).

    رهنمودهای بررسی کد

    این دستورالعمل ها از آنچه باید بررسی کد انجام دهد ، ناشی می شوند. ارائه رهنمودهایی که بتوانند برای هر شرایطی اعمال شوند غیرممکن است. در نظر داشتن این اهداف حتی در شرایطی که این دستورالعمل ها شامل آن نمی شوند ، به “روح” بازبینی کد کمک می کند.

    بررسی کد باید:

  • تأیید کنید که کد یک راه حل صحیح و م forثر برای نیازهای موجود است.
  • اطمینان حاصل کنید که کد قابل نگهداری است.
  • دانش مشترک در مورد کد کد را افزایش دهید.
  • از طریق بازخورد منظم مهارت تیم را تیز کنید.
  • در زمان برنامه نویس سربار سنگینی نباشید.
  • به عنوان یک توسعه دهنده

    برای شما ، به عنوان توسعه دهنده (یا “نویسنده” ، “ارسال کننده”) داشتن یک ذهنیت باز و فروتنانه در مورد بازخوردی که دریافت می کنید مهم است.

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

    ما انسان هستیم و ، انسانها اشتباه می کنند. این کاملا طبیعی است. تا زمانی که این نرم افزار توسط افراد نوشته شده باشد ، حاوی اشتباهاتی خواهد بود.

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

    تبادل تجربه

    در طول یک مرور کد ، توسعه دهنده و بازبینی کننده در حال تبادل بهترین شیوه ها ، تجربیات ، نکات و ترفندها هستند.

    توسعه دهنده و بازرسان فقط درمورد کد صحبت نمی کنند … آنها در حال تبادل بهترین شیوه ها و تجربیات هستند. بررسی کد ابزاری عالی برای ایجاد و داخلی سازی سبک های کدگذاری خوب و بهترین روش ها است. و تبادل در هر دو جهت کار می کند. بنابراین بررسی کد را به عنوان یک منبع ارزشمند دانش و فرصتی برای یادگیری در نظر بگیرید.

    به عنوان یک بازبینی

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

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

    درست : “برای من سخت است که ببینم این کد چه کاری انجام می دهد.”
    اشتباه: “شما در حال نوشتن رمز رمزگذاری هستید.”

    همیشه بازخورد را از دیدگاه شخصی با بیان افکار ، احساسات و برداشت های شخصی خود تنظیم کنید. بحث و جدال برای توسعه دهنده کد دشوار است زیرا این احساسات ذهنی هستند.

    قبل از ارسال نظر ، به یاد داشته باشید که خود را جای شخص مقابل بگذارید. سو to تفاهم بسیار آسان است ، بنابراین نظر را مرور کنید ، همیشه با احترام بمانید … صحبت خوب با دیگران هرگز تصمیم بدی نیست.

    توسعه دهنده را از بازخورد خارج کنید

    توسعه دهنده را از بازخورد خارج کنید ؛ فقط درمورد کدی صحبت کنید که توسعه دهنده برای بررسی ارسال می کند. انتقاد از کد بسیار دشوارتر است زیرا شخص شما به سادگی درباره کد ، یک موضوع عینی و نه یک توسعه دهنده صحبت می کنید. باز هم ، این باعث بهبود پذیرش می شود (تا زمانی که سازنده متوجه شود که آنها کد آنها نیستند).

    همکاری غیرقضاوتی

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

    بپذیرید راه حل های مختلفی وجود دارد

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

    ستایش را بخاطر بسپارید

    کاملاً قابل قبول است که بگوییم: “همه چیز خوب است!”. بدون تغییر کد نتیجه معتبری برای بررسی کد است. احساس نکنید که مجبور هستید که اشتباهی در مورد کد پیدا کنید.

    و آخرین ، اما نه مهمترین: در صورت خوب بودن کد ، ابراز قدردانی را فراموش نکنید. ستایش هرگز به سازنده آسیب نمی رساند و ممکن است انگیزه ایجاد کند.

    چه کسی باید بررسی کند

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

    پرورش فرهنگ بازبینی کد مثبت

    بررسی کد انجام شده توسط همسالان می تواند روابط تیمی بین فردی را تحت فشار قرار دهد. کارهایی که توسط همسالان قابل نقد باشد دشوار است. بنابراین ، برای موفقیت در بررسی کد همتا ، بسیار مهم است که مدیران فرهنگ همکاری و یادگیری را در روند بررسی کد ایجاد کنند.

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

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

    مفاهیم ناخودآگاه مرور کد را بپذیرید

    دانش اینکه فرد دیگری کار آنها را بررسی خواهد کرد ، طبیعتاً افراد را به سمت تولید محصول بهتر سوق می دهد. این “جلوه Ego” به طور طبیعی انگیزه توسعه دهندگان برای نوشتن کد تمیزتر است زیرا مطمئناً همتایان آنها این کد را می بینند. اگر کد شما قرار است بازبینی شود ، این کاملاً انگیزه ای برای بررسی مجدد کار شما است.

    نتیجه گیری

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

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

    همچنین در https://dev.to/leading-edje/better-code-review-practices-15nb/edit