Практически все делают обзоры кода. Они были в течение долгого времени. Я помню, что в мои борландские дни, когда главный ученый приходил каждое утро и просматривал весь код, который был зарегистрирован в репозитории подрывного (!) В предыдущий день и отправлял электронные письма людям, чей код не задумался. Это старая школа.
Чуть менее старая школа? Сохранение всех чеков до пятницы для DEV-руководителей и/или менеджеров DEV для просмотра и одобрения. Оба этих метода оставляют желать лучшего — главное — полное отсутствие взаимодействия между разработчиком, кодом и рецензентом.
Обзоры кода имеют ряд целей. Вероятно, наиболее важным является сохранение качества и целостности кода в репозитории. Даже два старых школьных путях выше делают это.
Но почти так же важна возможность обучения, которую может предоставить обзоры кода. Если единственная обратная связь, которую разработчик получает от обзора кода, — это ошибки в форматировании или других тривиальных вещах, то никто не учится и становится лучше. Старые школьные способы выше предоставляют разработчику несколько возможностей для увеличения своих навыков. Чтобы предоставить возможности обучения, обзоры кода превратились в встречи, где все смотрели на код, написанный на этой неделе, и прокомментировали его, раскритиковали его или иным образом провели его через рукавиц. Это предоставило возможность обучения для разработчиков, но это заняло больше времени, так как оно было на 100% синхронно и потребовало, чтобы весь код ждал следующего запланированного собрания.
Теперь почти никто больше не делает эти обзоры старой школы. Все крутые дети выполняют запросы на притяжение. (Некоторые люди называют их «запросами слияния».) Запросы на тягу имеют ряд преимуществ по сравнению с ранее упомянутыми методами, включая:
Быть сделанным полностью асинхронно, но на публике для всех.
Никто не должен ждать, чтобы просмотреть код — это может произойти почти сразу после выдачи запроса на тягу.
История всех комментариев остается с кодом в репозитории. Это позволяет разработчику вернуться к коду год спустя и увидеть всю мысль, которая вступила в его написание.
Запросы на вытягивание можно отслеживать, контролировать и измерять. Из этого может выйти много хороших вещей Анкет
Стоит ли делать обзоры кода вообще?
Интересно, что некоторые говорят «нет», вы не должны.
Мало того, что Джессика Керр — отличный оратор и хороший в Твиттере, но у нее также есть несколько интересных представлений о обзорах кода в своей статье от 27 марта под названием «Эти отзывы о запросах на вытягивание. » На самом деле, ей не нравятся запросы на развлечение, и утверждает, что вы должны обойти их, просто работая над данной задачей как командой, чтобы все видели все, как работа выполняется.
Она считает, что запросы на притяжение отлично работают для проектов с открытым исходным кодом, где «команда» на самом деле является набором людей, координирующих работу вместе. Для истинных команд разработчиков она считает, что если команда работает вместе по одной задаче, все учатся и понимают код, и, следовательно, нет никакого переключения задач между кодированием и выполнением запросов на притяжение, потому что запросы на притяжение не нужны.
Идея Джессики радикальна — в основном выходит за рамки парного программирования и перемещена в программирование толпы. Программирование MOB — это идея, чтобы целые команды работали вместе над проектами в серийных, а не индивидуально параллельно. Программирование MOB может устранить необходимость в запросах на притяжение, вызывая все общение и обучение для проведения на этапе кодирования, без какого -либо рассмотрения.
Не фанат
Мне трудно согласиться с ее идеей по нескольким причинам:
Транзакционные издержки слишком высоки. Мне кажется, что четыре человека работают над проектом вместе, создает множество каналов связи, увеличивает вероятность перерывов и уменьшает объем кода, который фактически будет написан. Это своего рода понятие «слишком много поваров, портит бульон».
Это не отражает дискуссии и историю, которая останется долго после того, как код будет совершен. Одним из наиболее важных и мощных преимуществ запросов на привлечение является обучение, которое может происходить в течение и даже долгое время после того, как код был рассмотрен и развернут.
Наконец, не все проекты способствуют нескольким членам команды, работающим вместе. Некоторые маленькие, и несколько человек работают вместе, были бы излишними. Некоторые из них эзотерические и требуют внимания одного человека. Некоторые будут соответствовать команде и могут работать вместе. Там нет единого размера подходит для всех решений для всех проектов.
Наконец, не выполнять запросы на привлечение в значительной степени исключает все преимущества систем метрик, таких как LineArb . Отслеживание прогресса запросов на привлечение и проверки кода через конвейер является критическим процессом для знания, как работает ваша команда. Без этого вы не можете измерить вещи, и если вы не можете измерить вещи, вы не можете улучшить.
В рамках дискуссии об обзорах кода Роб Крафт, один из лидеров разработчиков на нашем динамичном сервере DEV, вы должны присоединиться к !) сделал следующий комментарий, с которым я согласен:
Я думаю, что то, что нужно Джессике, хороший взгляд на LineArb. 🙂
Позвольте мне обратиться к некоторым из ее более конкретных возражений:
« Посмотрим правде в глаза: никто не хочет пересматривать запросы на привлечение. «Ну, я не думаю, что это правда. Мы здесь, в Linearb, каждый день видим клиентов, которые выполняют запросы на тягу эффективно и эффективно. Конечно, запросы на тягу могут быть трудными, и никто не хочет делать их, если вы неправильно побуждаете команду создавать запросы на привлечение, которые легко просмотреть. Никто не любит огромный запрос на тяжесть. Но посредством мониторинга метрик, таких как размер запроса, вы можете поощрять свою команду создавать небольшие, простые для обновления запросов на привлечение. И вуаля! Люди больше не ненавидят просьбы о привлечении.
» Они социальное взаимодействие минное поле! «Люди жалуются, что обзоры кода могут вызвать раздоры в команде. Ну, так же, как и разговоры во время программирования толпы. Я не уверен, что вижу различие. И если проведение обзора кода вызывает раздоры, то у вас есть культурная проблема, которую не может решить методология разработки.
» Мы могли бы обвинить людей. Мы могли бы набрать их больше. Мы могли бы даже автоматизировать ноту! «Что ж, если обзоры кода небольшие, краткие и простые в том, что он прост», автоматизируя норму »через наш продукт Workerb обычно более чем достаточно, чтобы запустить мяч и продолжать его катиться. Уведомления и отслеживание любых отзывов, которые случаются с томитом, также продолжают двигаться. Клиенты Linearb наблюдали резкие улучшения в производительности трубопровода кода в результате этого так называемого «нового».
« Может быть, вместо того, чтобы пытаться работать немного больше вместе, мы могли бы работать вместе». Ну, конечно, но если вы это сделаете, проверяя код без процесса запросов на притяжение и обзоров кода, то вы не получаете все преимущества, перечисленные выше, и не инструмент метрик, который может показать вам, что вы Время цикла делается. И я не верю, что программирование толпы предотвратит культурные проблемы, которые могут возникнуть в результате обзоров кода. Люди будут людьми, будь то в среде программирования толпы или в асинхронном процессе проверки кода.
Нижняя линия
Хорошо, какая резина попадает в дорогу здесь?
Если запросы на тягу и обзоры кода сложны, и люди не хотят их делать, то вы делаете их неправильно. Таким образом, хитрость заключается в том, чтобы сделать их легкими.
Мы здесь, в Linearb, видим, что многие, многие клиенты улучшают свое время цикла и общий процесс разработки программного обеспечения, используя и отслеживая запросы на привлечение. Объединив метрики, отслеживающие запросы на привлечение с такими инструментами, как Работник Многие, многие организации разработчиков видели меньшие запросы на притяжение, лучшие обзоры, более короткое время цикла и общий смысл, что вещи действительно гудят.
Мониторинг таких вещей, как размер запросов на привлечение, когда запросы на привлечение назначаются, подбираются и прокомментированы, а также мониторинг глубины обзоров, которые происходят, все создают среду небольших, дискретных, простых в просмотре запросов на привлечение.
И, конечно, если вы хотите узнать больше о том, что уже знают наши клиенты, вы можете Забронируйте бесплатную демонстрацию Linearb Анкет
В конце концов, хотя ее идеи интригуют и заставляют задуматься, я не могу сказать, что согласен с аргументом Джессики. Похоже, нет никакой веской причины не делать запросов на привлечение с обзорами кода.
Пост в блоге Джессики можно прочитать в ее блоге Джесситрона И вы можете подписаться на нее в Твиттере в @Jessitron
Если вы еще не слышали, Dev Treamted Hosting Взаимодействовать : Интерактивная, управляемая сообществом цифровую конференцию, которая проходит 30 сентября. Разработанный инженерными лидерами, для инженерных лидеров, Interact будет включать 10 докладчиков, 100 -х инженеров и инженерных лидеров, а также совершенно бесплатный.
Если вы еще не присоединились к лучшему разборчику разработчика, Wyd?
Слушай, я знаю, мы много говорим об этом Но мы любим наше сообщество Discord Discord. С более чем 1500 членами, DEV прервало сообщество Discord, является лучшим местом для инженерных лидеров, чтобы вести ежедневные разговоры. Продавцы не допускаются. Присоединяйтесь к сообществу >>
Первоначально опубликовано в https://devinterrupted.com 30 июня 2021 года.
Оригинал: «https://dev.to/linearb/those-pesky-pull-requests-are-totally-worth-it-578b»