Простой контрольный список для хорошей проверки кода
Привет, я недавно закончил магистратуру и, несмотря на двухлетний опыт работы, начал серьезно проверять код только в течение последних 7 месяцев на моей новой работе.
Будучи младшим разработчиком программного обеспечения, я всегда боролся с рецензированием кода, потому что «боялся» старших разработчиков. Мы никогда не учимся делать обзор кода в школе, поэтому я поискал в Интернете руководства и советы для хорошего обзора. Я нашел много веб-сайтов, но ни на одном из них не было четкого и простого контрольного списка. В этой статье предпринята попытка собрать информацию, собранную с нескольких веб-сайтов, в простой контрольный список, который вы можете использовать при просмотре кода коллег.
Во-первых, позвольте мне немного рассказать о почему мне нравится делать обзоры кода (я считаю, что многим разработчикам это не нравится) и почему я считаю их важными. Когда я начал свою новую работу, я был поражен технологиями, используемыми в проекте, и кодовой базой проекта. Я впервые использовал несколько технологий, и у меня был довольно большой технический долг. Вдобавок к этому у проекта есть масса нюансов с деловой стороны. Единственное, что ускорило мое понимание проекта, - это проверка кода! Когда я просматривал код, я мог понимать небольшие фрагменты кода (функции) вместо того, чтобы пытаться понять весь проект сразу. Это было намного проще, и по каждой функции (запрос на вытягивание за запросом на вытягивание) я должен лучше понимать проект и сам код. Из-за этого я теперь люблю проверять код! Теперь я просматриваю каждый запрос на перенос, который входит в кодовую базу, потому что я действительно хочу понять все маленькие части, которые вместе составляют проект.
Конечно, есть много других преимуществ проверки кода. Но, как следует из названия, это простая статья, поэтому давайте оставим ее простой и понятной :)
Контрольный список:
✓ Обрабатывает ли код крайние случаи?
✓ Вы видите дублированный код? Можно ли абстрагировать этот код?
✓ Есть ли способ сделать код короче / проще / быстрее и т. д.?
✓ Трудно ли понять код? А что с названиями, они понятны? Комментарии в коде хорошо продуманы?
✓ Все переменные и методы названы правильно?
✓ Все новые переменные объявляются?
✓ Добавляет ли изменение время выполнения или вызывает проблемы с производительностью?
✓ Все ли параметры определены правильно и имеют правильный тип?
✓ Хорошо ли импортированы библиотеки? Мы используем устаревшие методы?
✓ Соответствует ли код стандартам проекта и соглашениям об именах?
✓ Тон моих комментариев положительный и не повредит другим чувствам разработчиков?
✓ Могу ли я в своих комментариях не отдавать приказы, а вместо этого давать предложения? («Измените этот метод на xxxx» vs « Что вы думаете об изменении этого метода на xxxx?»)
✓ Я критикую код, а не автора? («Почему ВЫ….?» против «В чем причина этого…»)
Надеюсь, вы найдете это полезным :) вы можете использовать этот контрольный список всякий раз, когда просматриваете код. Если у вас есть другие предложения, добавьте их в комментарий.
Давайте сделаем обзоры лучше, начнем им нравиться и, в конце концов, будем строить отличные проекты :)