Можно ли пропустить проверку кода, если у вас есть модульные тесты?
Но почему?
Основная роль рецензирования заключается не в выявлении ошибок.
Да, вы можете выявить некоторые потенциальные ошибки и сомнительный, склонный к ошибкам код, это часто случается, но иногда обнаружение некоторых грубых ошибок не означает, что рецензирование является надежным способом исключить наличие ошибок. Это далеко не так. Это не правильный инструмент для проверки функциональной правильности реализации.
Однако проверка кода обеспечивает поддержку кода . Я потребую, чтобы код был чистым и понятным (не только для его автора), прежде чем он будет запущен в производство.
Наличие модульных тестов полностью ортогонально этому. Вы можете иметь 100% покрытие кода и все тесты, проходящие для абсолютно непонятного кода.
Обзор кода также служит для ознакомления других разработчиков с вашей работой, чтобы они знали, что к чему, и могли оттуда забирать, или обрабатывать отчеты об ошибках, когда вы в отпуске и т. Д. Знание того, что вы сделали сразу, может помочь хорошо выполняйте свою работу - сохраняйте согласованность кодовой базы (придерживайтесь аналогичных шаблонов и соглашений во всем приложении) или избегайте дублирования кода.
В более широком плане человек также учится и развивается как разработчик, читая чужой код.
Модульные тесты вряд ли могут заменить любую из них. Да, если они хорошо написаны, они читают как документацию, и мы должны стремиться к этому. Но, опять же, это не является взаимоисключающим с проведением рецензирования, скорее наоборот - все преимущества рецензирования остаются в силе, тот факт, что ваши коллеги имеют несколько хороших модульных тестов, на которые можно посмотреть, только сделает процесс рецензирования более простым и еще более полезным а не излишним.