В этом вопросе есть две примечательные проблемы: тактичная часть и предельный срок . Это разные вопросы: первый - это вопрос коммуникации и динамики команды, второй - вопрос планирования и расстановки приоритетов.
Тактично . Я полагаю, что вы хотите избежать сглаженных эго и негативного отклика на отзывы. Некоторые предложения:
- Иметь общее понимание стандартов кодирования и принципов проектирования.
- Никогда не критикуйте и не проверяйте разработчика , только код . Избегайте слова «вы» или «ваш код», просто поговорите о проверяемом коде, оторванном от любого разработчика.
- Вы можете гордиться качеством готового кода, чтобы оценить комментарии, которые помогают улучшить конечный результат.
- Предлагайте улучшения, а не спрос. Всегда имейте диалог, если вы не согласны. Постарайтесь понять другую точку зрения, когда вы не согласны.
- Пусть обзоры идут в обе стороны. Т.е. человек, которого вы просмотрели, пересмотрит ваш код дальше. Не иметь «односторонних» отзывов.
Вторая часть - это расстановка приоритетов . У вас есть много предложений по улучшению, но так как приближается крайний срок, есть только время, чтобы применить несколько.
Ну, во-первых, вы хотите избежать этого в первую очередь! Вы делаете это, выполняя непрерывные, инкрементные обзоры. Не позволяйте разработчику работать над функцией в течение нескольких недель, а затем просмотрите все это в последний момент. Во-вторых, проверки кода и время для реализации предложений по проверке должны быть частью регулярного планирования и оценки для любой задачи. Если для проверки не хватает времени, что-то пошло не так при планировании.
Но давайте предположим, что в процессе что-то пошло не так, и теперь вы столкнулись с рядом комментариев, и у вас нет времени на их реализацию. Вы должны расставить приоритеты. Затем перейдите к изменениям, которые будет сложнее и рискованнее изменить позже, если вы отложите их.
Наименование идентификаторов в исходном коде невероятно важно для удобочитаемости и удобства сопровождения, но в будущем это также довольно легко и с минимальным риском изменить. То же самое с форматированием кода. Так что не сосредотачивайтесь на этом. С другой стороны, здравомыслие открытых интерфейсов должно быть наивысшим приоритетом, так как их действительно трудно изменить в будущем. Постоянные данные трудно изменить - если вы впервые начнете хранить непоследовательные или неполные данные в базе данных, это будет действительно трудно исправить в будущем.
Области, которые охватываются юнит-тестами, имеют низкий риск. Вы всегда можете исправить это позже. Области, в которых нет, но которые могут быть проверены модулем, имеют меньший риск, чем области, которые не могут быть проверены модулем.
Скажем, у вас большой кусок кода без модульных тестов и всевозможных проблем с качеством кода, включая жестко запрограммированную зависимость от внешнего сервиса. Вместо этого внедряя эту зависимость, вы делаете тестируемый фрагмент кода. Это означает, что в будущем вы можете добавить тесты, а затем поработать над исправлением остальных проблем. С жестко закодированной зависимостью вы даже не можете добавлять тесты. Поэтому сначала зайдите на это исправление.
Но, пожалуйста, постарайтесь не оказаться в этом сценарии в первую очередь!