Як отримати максимальний ефект від код рев’ю?

Після невеликої паузи (минулого тижня в курсантів була внутрішня “сесія”), продовжуємо публікацію статтей курсантів RubyForce. Сьогодні знову стаття від Іллі Кузьми:

На мою думку, code review (CR) – це дуже крута річ, користь від якої отримують всі. Автор коду – свіжий погляд на вирішення проблеми над якою працював. Рев’ювер – розуміння частини проекту, спосіб та підхід до вирішення певного завдання. Загалом, проект стає чистішим та зрозумілішим.

Існує думка, що немає сенсу залучати початківців до CR. Я так не вважаю. Звичайно, добре мати досвідченого розробника, який вкаже на проблеми в коді. Але, навіть, коли новачок рев’ювить чийсь код – це приносить велику користь. Особисто для мене, було дуже складно читати чужий код. CR дозволяє зосередитись на певній частині програми. Розібрати її детально. Зрозуміти підхід іншого розробника. Навчитись. З іншої сторони, коли я сам пишу код і створюю Pull Request, то переглядаю написане перед тим як його побачать інші.

Так, це не легко. Складно вникати в суть написаного кимось коду. CR вимагає багато часу. Інколи хочеться швидше закінчити CR, або відкласти на потім, або просто погодити без перегляду і повернутись до своєї feature. Для того щоб побороти це, потрібно дотримуватись певних принципів.

По-перше, CR – це дуже важлива чатина workflow. Не менш важлива ніж написання коду.

По-друге, гарне CR – це прояв поваги до свого колеги. В такий спосіб ми цінуємо працю іншої людини.

По-третє, всі учасники проекту повинні домовитись як часто вони робитимуть CR. Цей пункт поясню детальніше. Я почув цю ідею у відео MPJ на його YouTube каналі. Така домовленість називається Working Contract. Це неформальна згода усіх членів команди слідувати певному workflow. Автор PR природньо хоче швидкого RAM(review and merge). В той же час інші програмісти не хочуть відволікатись від того над чим працюють вони. Адже CR вимагає занурення в зовсім іншу задачу. Working Contract вирішує цю проблему. Ми домовляємось про CR раз на день. Автор знає, що його PR буде переглянутий колегами до завтрашнього дня і може спокійно переходити до ішого завдання. Рев’ювер може приступити до, власне, CR тоді коли йому буде зручно.

По-четверте, супер важливо коректно писати коментарі. Текст не передає всього змісту повідомлення. Наша мета – кращий код. І CR не місце переходу на особистості.

І останнє, з власного досвіду. Не варто безапеляційно погоджуватись зі всіма зауваженнями більш досвідчених колег. Ви працювали над завданням. Ви глибоко розібрали його. Інколи, яким би досвідченим не був рев’ювер, він просто не встані осягнути всі аспекти рішення. Якщо ви впевнені, що ваш код є кращим, поясніть детальніше чому так. Або якщо не розумієте попросіть пояснити зауваження, щоб в майбутньому писати краще!

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz