Какие ключевые аспекты ты считаешь важными в код-ревью?

«Какие ключевые аспекты ты считаешь важными в код-ревью?» — вопрос из категории Софт-скиллы, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В моей практике проведения код-ревью я фокусируюсь на нескольких ключевых аспектах:

  1. Читаемость и ясность кода. Код должен быть понятен другим разработчикам. Это включает осмысленные имена переменных и функций, отсутствие излишней сложности и логичную структуру.
  2. Соблюдение стандартов. Проверяю соответствие PSR (например, PSR-12) и внутренним гайдлайнам проекта. Несоблюдение стандартов усложняет поддержку.
  3. Безопасность. Ищу потенциальные уязвимости: SQL-инъекции, XSS, проблемы с CSRF-токенами, некорректную валидацию входных данных.
  4. Производительность. Обращаю внимание на "запахи" кода, влияющие на производительность: N+1 проблемы в запросах к БД, неоптимальные алгоритмы, избыточные вычисления в циклах.
  5. Тестируемость. Код должен быть модульным и допускать покрытие тестами. Критикую жесткие зависимости (например, прямое создание объектов через new внутри класса), которые мешают мокам и юнит-тестированию.
  6. Архитектурная целостность. Проверяю, не нарушает ли изменение существующие архитектурные паттерны проекта (например, MVC, слоистую архитектуру) и не создает ли непредусмотренных зависимостей.

Мой подход — конструктивный диалог. Я не просто указываю на проблему, а предлагаю конкретные альтернативы или задаю уточняющие вопросы, чтобы автор сам пришел к оптимальному решению.