- PVSM.RU - https://www.pvsm.ru -
В компании Slack считают, что эмпатия — это суперспособность, и у разработчиков она должна быть включена по максимуму.
Разработка высококачественных программ сильно зависит от того, насколько качественное ревью кода делают коллеги. Это помогает обнаружить ошибки, избежать двойной работы и в целом обеспечить лучшее качество кода с меньшими усилиями. Код ревью — это критически важная часть процесса разработки.
Хорошая культура код ревью основана на эмпатии к вашим коллегам-разработчикам. Что мы имеем в виду, когда говорим об эмпатии? Brené Brown [1], техасский профессор и исследователь психологии, предлагает подходящее определение. По ее мнению, эмпатия включает в себя четыре компонента:
Эмпатия — это навык, который поддается развитию. Её нужно практиковать, чтоб овладеть в полной мере. Наша цель — быть дружелюбными, доброжелательными и открытыми. Это тот стиль работы, который используют в разработчики компании Slack. И он создает отличную почву для плодотворного сотрудничества.
Итак, как же мы можем стимулировать проявления эмпатии и создавать более плодотворную среду? Это особенно важно, когда большая часть работы состоит из написания большого количества кода. Как насчет код ревью и пулл-реквестов? Бесспорно, это одни из главных способов взаимодействия между коллегами-инженерами.
Очень трудно делать код ревью, если автор кода не сделал так, чтобы вам было удобно инспектировать его код. Поэтому постарайтесь делать то же самое для своих ревьюеров. Ниже перечислены несколько признаков хорошего пулл-реквеста.
Первое и наиболее важное: хорошие пулл-реквесты предоставляют контекст для проверяющего код. Обычно, когда вы создаете пулл-реквест:
С другой стороны:
По сути, ваш ревьюер совсем не берёт в расчёт контекст задачи. Ваш пулл-реквест должен предоставить ему этот контекст. И есть несколько способов сделать это:
Не каждый пулл-реквест должен обладать всем перечисленным, но чем больше информации вы предоставите проверяющему, тем лучше он сможет проинспектировать ваш код для вас же. И если в будущем кто-то найдет в этом месте проблему и просмотрит ваш пулл-реквест, он скорее всего поймет, зачем вы внесли именно такие изменения и чего вы хотели ими достичь.
Предоставьте вашему ревьюеру весь необходимый контекст. Это увеличит его эффективность и ускорит понимание ваших изменений. Это очень похоже на то, как дать книгу человеку, раскрытую на той же странице, где вы сейчас сами, при этом пересказав ее содержание до этого места.
Изменения в каждом пулл-реквесте должны решать одну-единственную задачу. Допустимо исправлять несколько мелких ошибок в одном пулл-реквесте, но они должны быть связаны. Когда ваш ревьюер будет просматривать список измененных файлов, он не должен быть удивлен.
Также хорошей практикой является создание небольших пулл-реквестов. Во-первых, так легче заметить ошибку в коде меньшего объема, а во-вторых, это поможет избежать утомления и рассеяния внимания ревьюера при чтении кода.
В чем главная идея проводить код ревью? Оно позволяет обнаружить проблемные места до того, как они стали проблемами. Поэтому, когда мы сами на месте проверяющих, должны брать ответственность за проблемы в коде, который мы проинспектировали.
Давайте повторимся, потому что это действительно важно: вы должны брать ответственность за проблемы в коде, который одобрили. Если изменение уходит в продакшн и становится причиной бага, это также и ваша ошибка. Поэтому проверяйте код внимательно, чтобы быть уверенным в нем.
Если вы хотите, чтобы люди брали ответственность за ваш код, не пожалейте своего времени и приложите дополнительные усилия. Исправление бага — это отлично, но добавление юнит-теста для гарантии, что он никогда не воспроизведется в будущем — еще лучше. Рефакторинг кода — это хорошо, но также важно дополнить документацию по измененным методам до актуального состоянии. Обязательно нужно охватывать все детали.
Хороший пулл-реквест — это проявление эмпатии, как для автора, так и для проверяющего.
Если вы — автор, добавление детальной информации о решаемой проблеме в ваш пулл-реквест позволит не только улучшить качество проверки, но и вызвать благосклонность ревьюера. Хорошие пулл-реквесты, которые сфокусированы на одной проблеме, снабжены тестами и комментариями, позволяют забыть контекст, не опасаясь за этот участок кода в будущем. Если вы — проверяющий, хорошо сформированные пулл-реквесты сделают вашу работу более эффективной, и направят внимание на ревью кода, а не на уточнение деталей в контексте задачи. Как итог, от качественных пулл-реквестов выигрывают абсолютно все.
Автор: mochalovv
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/266166
Ссылки в тексте:
[1] Brené Brown: http://brenebrown.com/
[2] Источник: https://habrahabr.ru/post/340456/
Нажмите здесь для печати.