В силу разных обстоятельств разработчики могут писать сложный для восприятия код. Его крайне тяжело обслуживать, из-за чего могут возникать ошибки, которые трудно выявить. Чтобы избежать подобного сценария, проводят код-ревью. На этом этапе, программисты проверяют качество написанного ранее кода.
Что такое код-ревью
Code Review (CR) – это процесс подробного анализа имеющегося программного кода. Его проводят непосредственно перед релизом продукта. Важно, чтобы проверку осуществлял сторонний разработчик, который не участвовал в реализации поставленной задачи. В качестве результата специалист получает обратную связь, например, необходимо доработать определенную функцию, внести правки в определенный блок или готовить задачу к тестированию и релизу.
Для чего нужен код-ревью
Как правило, CR является частью процесса выполнения конкретной задачи. Многие думают, что проверкой занимается исключительно старший разработчик. На деле, большинство команд придерживаются другой практики. В ревью задействованы сразу все программисты. Во-первых, это помогает распределить нагрузку, во-вторых – сформировать у разработчиков более полное представление о выполняемых задачах.
Благодаря Code Review, команда может:
- минимизировать «фактор автобуса» – чем больше людей в команде имеют представление о выполняемой задаче, тем лучше. Важно избегать ситуаций, при которых весь проект или одна из его составляющих завязана только на одном человеке;
- повысить качество кода – хорошо структурированный код гораздо легче поддерживать и модернизировать. Если его сможет понять любой участник команды, то дальнейшая модификация проекта будет проходить быстрее;
- выявить ошибки и баги еще на стадии разработки – поскольку код проверяется минимум двумя программистами, вероятность упустить ошибку значительно снижается. Если пренебрегать проверками, итоговая версия продукта может оказаться просто недоработанной;
- повышать уровень знаний сотрудников – во время ревью разработчики могут узнавать новые подходы и паттерны, которыми пользуются их коллеги;
- поддерживать здоровую культуру внутри коллектива – когда специалисты активно взаимодействуют друг с другом, они могут учиться друг у друга, давать обратную связь и т.д.
Единственный недостаток код-ревью – более продолжительный срок работы над проектом. Однако он полностью нивелируется качеством итогового продукта. Если ошибки будут обнаружены после релиза, на их исправление уйдет гораздо больше времени и средств.
Какие задачи решает код-ревьюер
Как уже было сказано выше, код-ревью является одним их этапов написания программного кода. За некоторые его части отвечают начинающие разработчики (стажеры или джуниоры). В виду нехватки опыта, их код может получаться излишне сложным и непонятным. В ходе проверки ревьюер укажет на ошибки и покажет, как можно упростить ту или иную функцию. Именно поэтому в больших командах CR уделяют особое внимание.
Код-ревью дает возможность участникам команды договориться о правилах написания кода. Когда разработчики создают понятный и лаконичный код, его легко поддерживать и масштабировать. Кроме этого, в процессе проверки, программисты могут обмениваться знаниями и находить новые, более оптимальные решения поставленных задач.
Иногда код-ревью путают с тестированием. В ходе CR гораздо важнее понять логику решения, чем найти ошибки. Также, необходимо донести суть обнаруженной проблемы, до разработчика, отвечающего за конкретный фрагмент программы. Для этого важно уметь четко и точно формулировать суть проблемы.
Этапы работы
В своей работе код-ревьюер придерживается принципа «от общего к частному». Прежде всего ему необходимо понять, над решением какой проблемы работал автор кода. Для этого изучается техническое задание и проводится беседа с программистом. На ней уточняются все важные детали. После этого, проверяющий оценивает архитектуру и сам код. Этот этап один из самых важных, поскольку именно здесь можно выявить грубые ошибки.
Следующий шаг – проверка отдельных функций, оценка используемых алгоритмов и их эффективности. Важно проверить, можно ли использовать более подходящие методы, и каким образом они отразятся на итоговом продукте.
В конце ревьюер составляет комментарии для программиста. В них он должен объяснить почему тот или иной фрагмент нуждается в исправлении. Кроме этого, проверяющий может дать полезный совет, подсказать оптимальное решение или посоветовать материалы, обратившись к которым разработчик сможет привести свой код в надлежащий вид. При этом проверка никак не должна сказываться на скорости работы над проектом. В идеале, код-ревью не должно выходить за рамки рабочего дня.
Важность полезного комментария сложно переоценить. Благодаря ему, разработчик может улучшить свой код. Проверяющий не должен оставлять в нем свои нотации или субъективную оценку. Именно поэтому, необходимо тщательно следить за качеством обратной связи. В противном случае автор может принять слова на свой счет, что лишь усугубит ситуацию и не способствует повышению эффективности.
Помимо комментариев, код-ревьюер может оставлять свои персональные рекомендации. Они представляют собой небольшие замечания. Разработчик может заняться их реализацией при наличии свободного времени.