Много было сказано об обзоре кода и преимуществах для вашей команды. Все и все больше команд используют их для улучшения своей повседневной работы и качества написанного кода.
Однако слишком многие компании по-прежнему сопротивляются и считают их трудоемкими, недооценивая много преимуществ, которые они приносят.
В этом посте описываются преимущества проверки кода и то, как в buildo мы стремимся сделать их максимально эффективными и легкими.

Что такое обзоры кода и почему я должен беспокоиться?

Проверка кода - это процесс, при котором каждое изменение базы кода должно быть одобрено другими разработчиками, которые будут проверять его, возможно, требуя изменений, прежде чем оно будет объединено в вашу основную ветвь.

Рассмотрение вашего кода другими членами вашей команды значительно улучшит качество вашей работы во многих отношениях. Здесь мы увидим основные преимущества.

Повысьте надежность вашего приложения
Само собой разумеется, что больше людей читают и тестируют ваш код до того, как он будет объединен, значит, больше ошибок будет обнаружено еще до того, как они попадут в рабочую среду.
Более того, наличие нескольких точек зрения на одна проблема означает разные (возможно, лучшие) мнения о вашем решении или о том, как вы его реализовали.

Делитесь своими вариантами реализации и подтверждайте их, просматривая их

Общие правила
Проверка кода - хорошее время, чтобы поделиться рекомендациями между членами вашей команды. Такие вещи, как архитектурный дизайн или использование определенной библиотеки, доступны всем. Вся ваша команда будет согласована и сможет предлагать изменения в случае, если ваш код не соответствует рекомендациям.
Кроме того, старшие члены вашей команды могут воспользоваться отзывами для обучения менее опытных разработчиков или обеспечения стиля кодирования ... хотя вам следует Применять как можно больше автоматически ;-)

Проверка кода - отличный способ сохранить единство вашей команды

Совместное владение кодом
Проверка кода облегчит бремя единственного в мире разработчика, отвечающего за конкретный фрагмент кода, распространяя владение и знания по всей команде.
Эта особенность, которую вы разработали несколько недель назад, оказалась сломанной незадолго до вашего отъезда в отпуск? Вам больше не нужно об этом беспокоиться, так как другие могут позаботиться об этом, зная, как этот код работает.

Обеспечьте качество кода
Зная, что ваш код будет прочитан и одобрен кем-то другим, вы начнете писать для других, всегда задаваясь вопросом, достаточно ли вы понятны, добавляя лучшую документацию и разделяя превращайтесь в осмысленные коммиты.
Помните: делать что-то публично - значит меньше отстой.

Наглядность - отличный стимул к качеству

Но они - пустая трата времени !!!

Ага! Это то, что вы можете услышать от своих менеджеров, ворчавших по поводу снижения пропускной способности и скорости.
Но не дайте себя обмануть! Проверка кода не требует больших усилий, если вы в состоянии их освоить, и преимущества наверняка перевесят дополнительную работу.
Давайте посмотрим на лучшие практики, чтобы получить максимальную отдачу. обзоров кода, и как в buildo мы стараемся сделать их еще ярче.

🔬 Делайте изменения небольшими и удобочитаемыми
Чтобы упростить работу рецензентов, каждый разработчик должен делать изменения небольшими и хорошо организованными. Имейте это в виду: если вашу работу можно читать быстро, ваши коллеги будут более склонны читать ее внимательно. Проверка займет меньше времени и будет более эффективной.

Ограничьте изменения кода тем, что строго связано с реализуемой функцией, и организуйте их в осмысленные коммиты, если вы думаете, что они могут помочь лучше понять вашу реализацию.
Кроме того, если вы считаете, что ваш код займет слишком много времени, чтобы быть просмотренным, попробуйте разделить его на разные циклы обзора.

📗 Задокументируйте свой код
Это не ограничивается комментариями в базе кода, это больше касается перечисления критериев приемлемости, документирования шагов, необходимых для его тестирования, и, возможно, включения любого дополнительного фрагмента кода, который может помочь ускорить процесс проверки (например, фиктивные данные или практическое использование вашего нового компонента).
Добавление плана тестирования с описанием того, как вы тестировали свою новую функцию, является хорошим плюсом, даже лучше, если вы контекстуализируете свой код, добавив скринкасты , картинки или гифки.

⏰ Не откладывайте отзывы
Если кто-то требует от вас обзора, не откладывайте его слишком долго. Имейте в виду, что работа ваших товарищей по команде может быть заблокирована в ожидании вашего одобрения.

🔄 Установите процесс применения необходимых изменений
Если кто-то потребовал внести изменения в ваш код во время проверки, вы должны применить их в виде четких и изолированных коммитов. Вашим рецензентам будет проще проверить их позже, когда они снова проверит ваш код.
По этой причине старайтесь, чтобы история коммитов оставалась линейной, например избегая переадресации, если вы используете git.

🛠 Тщательно выбирайте инструменты
Обзоры из-за плеча, обмен сообщениями электронной почты или сеансы парного программирования - все это допустимые способы сделать обзоры, но вы должны тщательно выбирать инструменты, которые лучше всего соответствуют привычкам вашей команды. .
Если ваши товарищи по команде обычно заняты другими задачами и трудно найти время, чтобы побыть вместе за одним столом, обзоры с помощью инструментов могут быть более подходящими, поскольку они позволяют рецензентам планировать время для обзоров независимо и на основе о своих личных обязательствах.
GitHub с его запросами на вытягивание является отличным примером инструментов проверки кода, особенно после недавнего введения запросов на проверку.

В buildo мы делаем все возможное!

Здесь, в buildo, мы упорно работаем над разработкой инструментов и процессов, которые плавно вписываются в наш рабочий процесс и делают нашу повседневную работу более приятной.

Поскольку большая часть нашего кода находится на GitHub, мы построили наш процесс проверки на основе его системы «запросов на вытягивание», используя ее API, чтобы еще больше улучшить работу.

🔃 CLI ❤️ GitHub
Хотя веб-интерфейс GitHub хорошо спроектирован, мы, разработчики, в основном «живем» в терминале. Вот почему мы разработали внутренний инструмент командной строки, который поддерживает нас на протяжении всего процесса проверки. Благодаря этому мы можем создавать ветки для наших новых функций и открывать PR из них так же быстро, как произнося hophop [ndr. итальянский эквивалент словаgo-go-gadget из мультсериала 80-х Inspector Gadget]

И, конечно же, мы не можем называть себя крутыми пользователями git, если не используем какие-нибудь причудливые git aliases:

[alias]
  feature = !hophop gh feature
  pr = !hophop gh pr

Помимо ускорения, вы можете использовать аналогичный инструмент для автоматизации задач и обеспечения соблюдения правил, особенно если они поддерживаются другими скриптами или инструментами. Например, при поддержке nemobot (нашей ужасающей сторожевой рыбы) наш инструмент может автоматически связывать PR со связанной проблемой, синхронизировать их и добавлять к ним полезные ярлыки (например, WIP или in review). их.
Кроме того, он может генерировать шаблон по умолчанию для PR (вы можете увидеть пример в GIF-изображении выше), чтобы напомнить разработчикам, что они должны включать любую важную информацию для рецензентов (например, план тестирования, список поддерживаемые браузеры, ссылка на развернутую функцию и т. д.).

🗣 Сообщите рецензентам
Как мы уже говорили выше, важно своевременно проверять, чтобы не блокировать своих товарищей по команде.

Для этого может пригодиться система уведомлений, напоминающая разработчикам о незавершенных проверках.

В buildo мы используем bitbar инструмент, который позволяет отображать вывод любого скрипта прямо в строке меню Mac OS X. Мы добавили несколько специальных скриптов для отображения количества ожидающих проверок: благодаря этому запросы на проверку больше не будут пропущены!

Выводы

Напомним, что ревью кода принесет множество преимуществ в вашей повседневной работе и соответствующее улучшение качества вашего конечного продукта.
Если все сделано правильно, они не потребуют больших усилий. Фактически, они часто сокращают время, затрачиваемое на поиск ошибок, поздний рефакторинг, обмен знаниями и передачу обслуживания.
Кроме того, с небольшой дополнительной работой вы можете приспособить процесс проверки к своим потребностям, автоматизируя наиболее важные аспекты и обеспечивая соблюдение руководящих принципов. чтобы извлечь из них максимум пользы.
Итак, если проверка кода все еще не является вашим хлебом с маслом, постарайтесь найти лучший способ привлечь их к своей команде, и вы не пожалеете об этом!

Удачного обзора ;-P

Если вы хотите работать там, где мы заботимся о качестве нашего рабочего процесса разработки, взгляните на https://buildo.io/careers