Что делать, когда вы устали от медленных обзоров кода
7 декабря 2022 г.TL;DR
- 🏎 Узнайте, как ускорить процесс проверки кода, чтобы повысить свою продуктивность.
- 🔬 Изучите лучшие практики, с которыми я столкнулся для рецензентов кода.
- ✏️ Ознакомьтесь с лучшими практиками авторов запросов на вытягивание, с которыми я столкнулся.
Представьте это.
Вы только что реализовали функцию и написали все тестовые примеры. Вам понравился код, поэтому вы открыли запрос на извлечение и сообщили своим коллегам. По прошествии нескольких дней ваш запрос на вытягивание выглядел точно так же, как и раньше. С виду нетронутый. Без комментариев. Нет запроса на изменение. Вы снова попросили своих коллег проверить код, и они согласились. Прошла еще неделя, и ничего не произошло. Вы спросили еще раз, и они сказали, что им нужно больше времени, потому что это был не маленький PR, и нужно было многое учесть.
Наконец, вы увидели уведомление о запросе на изменение и сразу ухватились за него. После разрешения конфликтов слияния и исправления пограничных случаев вы снова запросили проверку и стали ждать. Еще один запрос на изменение появился через несколько дней, и вы повторили процесс снова. Вы получили утверждение после очередной проверки, и PR наконец-то был объединен с основной линией.
Через 4 недели с момента открытия PR.
Если вы можете относиться к этому, вы не одиноки. Многие команды столкнулись с таким медленным процессом проверки кода. На самом деле, это один из основных блокировщиков в разработке цикл. Поэтому я хочу поделиться с вами передовыми методами проверки кода, которым я научился, чтобы ускорить разработку и помочь вам быстрее выпускать код.
Поехали.
Для авторов запросов на слияние
Главное, чему я научился, чтобы повысить продуктивность проверки кода, — быть вдумчивым как автор. Помимо создания чистого кода, вы можете сделать много мелких вещей, которые помогут вашим рецензентам заранее понять ваши запросы на вытягивание.
Будьте водителем
Вы, автор, задаете темп. Зная, что вы полагаетесь на своих коллег в процессе проверки кода, вы можете заранее четко сообщить когда и что, чтобы согласовать ожидания.
когда – это наиболее важная информация, потому что она сообщает рецензентам, насколько это срочно. Рецензенты могут соответствующим образом планировать свою работу. Это отличный способ установить временной интервал для процесса рецензирования, а также отличный способ чтобы проявить уважение ко времени ваших коллег.
Чтобы сообщить что, обязательно включите PR-описание, которое поможет вашим рецензентам понять цель и структуру кода ваших изменений. Вместо того, чтобы перечислять функции, начните с вводного абзаца, объясняющего предысторию и то, почему этот PR необходим, чтобы помочь рецензентам построить свои ментальные модели а>сильный>. Другие описания, которые я считаю очень полезными:
- Диаграммы разработки кода: снимок экрана высокоуровневой структуры кода. помогает рецензентам просмотреть общий проектировать и быстро реагировать на ваш запрос на вытягивание.
- Критерии приемлемости: список простых предложений, например . "После отправки формы пользователю отправляется электронное письмо с подтверждением". помогает при проверке найти отсутствующие функции и тестовые примеры.
Будьте лаконичны
Небольшие пулл-реквесты, ориентированные на лазер, легче всего читать. Насколько мал? Инженерные практики Google говорят, что "невозможно сделать его достаточно маленьким" . Исследование показало, что Качество проверки кода снижается по мере увеличения количества изменений кода. Чем дольше ваши рецензенты просматривают за раз, тем меньше дефектов они обнаруживают. Поэтому важно, чтобы ваш запрос на вытягивание был небольшим и был сосредоточен на чем-то одном. Если разрабатываемая вами функция слишком велика, вы можете разделить ее на несколько запросов на вытягивание с помощью "сложенных метод запроса на вытягивание".
Он заменяет большой запрос на вытягивание последовательностью небольших запросов на вытягивание. Это помогает рецензентам сосредоточиться на чем-то одном и прекрасно согласуется с принципом непрерывная интеграция и непрерывная доставка.
Для рецензентов кода
Не забывайте о предвзятости
исследование, опубликованное Google в 2022 обнаружил, что авторы пулл-реквестов сталкивались с различными уровнями отказов, которые варьировались в зависимости от демографических данных авторов. Согласно данным, они обнаружил, что
<цитата>- Женщины сталкивались с отказом на 21 % чаще, чем мужчины.
- Разработчики Black+ столкнулись с шансами на 54% выше, чем разработчики White+
- Разработчики с латиноамериканским языком+ столкнулись с шансами на 15 % выше, чем разработчики с белым+.
- Разработчики из Азии+ столкнулись с шансами на 42 % выше, чем разработчики из белых+.
- Пожилые разработчики сталкивались с более высокими шансами отказа, чем молодые разработчики.
Нам следует быть более внимательными к непреднамеренным предубеждениям, особенно на разнообразном рабочем месте. Помня об этом, мы можем избежать ненужных возражений при проверке кода и помочь ускорить процесс.
Это отличное место для обучения, а не для снобизма
Независимо от вашего опыта, работа разработчиком требует постоянного обучения. Запрос на вытягивание — это бесценная «рыночная площадка» для разработчиков, где они могут общаться и обмениваться отзывами. Поэтому убедитесь, что это место, где вас уважают, и всегда стремитесь к знаниям. поделиться.
Для меня это всегда было прекрасной возможностью узнать больше о предметной области. Возьмите мой PR в Руководстве по стилю JavaScript Airbnb, я так много узнал о Спецификация языка ECMAScript из Ecma TC39 участник. Если он отклонит мой запрос без конструктивного отзыва, момент обучения никогда бы не существовал.
Бездействие — это плохо
Я прочитал запись в блоге под названием "Агрессивная проверка кода". техническим руководителем Instagram год назад. Он утверждал, что эффективная проверка кода состоит из
- решительные действия как можно скорее
- стремясь снизить цену ошибок
- требуется небольшой запрос на включение и быстрое продвижение
Что меня освежило в его подходе, так это то, что отказаться от запроса на вытягивание нельзя. Это сводит к минимуму время на рассмотрение, и это было очень полезно для меня и моей команды. Мы можем поставлять быстро, потому что мы предпринимаем активные действия по проверке кода. Мы не позволяем ожидающим запросам на вытягивание задерживаться и проверяем их с учетом наших бизнес-кейсов.
Заключительные мысли
Чтобы повторить лучшие практики запросов на вытягивание и проверки кода для ускорения цикла разработки
- установить четкую информацию о когда и что запроса на вытягивание
- создайте небольшой самодостаточный запрос на вытягивание, сосредоточенный на чем-то одном
- помните о предвзятости
- уважительно относиться к автору и другим рецензентам
- как можно скорее принять решительные меры по проверке
Ссылки
- Влияние расы, этнической принадлежности, пола и возраста на проверку кода — Эмерсон Мерфи-Хилл, Сиера Джаспан, Кэролин Эгельман, Лан Ченг
- Использование исследований для проверки кода более справедливое — Эмерсон Мерфи-Хилл, научный сотрудник, центральное включение продуктов, справедливость и доступность
- Рекомендации по проверке кода сильный> - SMARTBEAR
- Небольшие CL – Google
- Групповые запросы на включение: сделайте проверку кода быстрее, проще и эффективнее - Доктор Микаэла Грайлер
- Проверки кода становятся блокировщиками – Reddit ли>
- Узкое место при проверке кода – Reddit
- Ограничение времени – Википедия
- Ментальные модели: узнайте, как думать лучше и получить умственное преимущество – Джеймс Клир ли>
- Расширение AppLand для VSCode – GitHub
- На что обращать внимание при проверке кода – Google
- https://www.boost.co.nz/blog/2010/ 09/acceptance-criteria – Натан Дональдсон
- Руководство бывшего главного инженера по дизайн-мышлению и непрерывной доставке — Доу-Чи Лиу
- Добавить частный идентификатор класса – GitHub
- Спецификация языка ECMAScript® 2023 — Ecma International
- Ecma TC39 – GitHub
- Во время проверки кода вас разрывают на части — это нормально? сильный> – Reddit
- Агрессивная проверка кода – Боби
- Современный обзор кода: пример из Google - Кейтлин Садовски, Эмма Сёдерберг, Люк Чёрч, Михал Сипко. Google, Inc.
Также опубликовано здесь
Хотите подключиться? Эта статья изначально была опубликована на веб-сайте Доу-Чи. п
Оригинал