Lebedko.md 16 KB

Оптимальные методы ревью кода

Стандарты, связанные с код-ревью

Обзор кода является неотъемлемой частью процессов, связанных с обеспечением высокого качества программного обеспечения. В ходе этого процесса один или несколько человек изучают и оценивают программу, основываясь преимущественно на анализе и чтении отдельных фрагментов исходного кода.

Методы код-ревью

Проверка исходного кода может осуществляться как вручную, так и с использованием специальных инструментов для обзора кода. Этот процесс является неотъемлемой частью мониторинга качества программного продукта. Он направлен на поиск ошибок, обеспечение соответствия стандартам кодирования, улучшение читаемости и обеспечение возможности внесения изменений в код, а также на обнаружение дублированного кода и других проблем. Каждый компонент программного обеспечения или новая функция, разработанные сотрудниками компании-разработчика, подвергаются проверке на соответствие требованиям качества.
Методы обзора исходного кода
Создание надежного процесса обзора кода является основой для постоянного развития продукта и предотвращает выпуск небезопасного для пользователей кода. Для повышения качества кода и обеспечения проверки фрагментов кода другими членами команды, методы код-ревью должны входить в повседневную работу команд, занимающихся разработкой программного обеспечения.

В процессе кода-ревью следует учитывать следующие факторы, которые являются ключевыми для достижения эффективных результатов.

• Обзор кода должен проводиться оперативно, с получением быстрых ответов и обратной связи. Анализ кода должен производиться сразу после представления нового фрагмента кода, чтобы разработчик получил незамедлительную обратную связь.

• Анализ кода должен способствовать обучению и развитию. Поскольку процесс направлен на повышение качества кода, обзоры должны стать возможностью обмена знаниями и опытом между коллегами.

• Код-ревью должно сопровождаться тестированием. Без проведения необходимых тестов обзор может пройти мимо неисправленных ошибок и проблем с безопасностью кода.

• После обзора кода следует комментировать и поощрять хорошее кодирование. Разработчику следует сообщить, что он хорошо справляется с работой. Код-ревью служит не только для поиска ошибок, но и для поощрения программистов.

• Обзоры кода должны соответствовать стандартным практикам кодирования. Код-ревью не должен быть основан на индивидуальных предположениях, и следует придерживаться общепринятых принципов, на которые можно ссылаться и цитировать. Это необходимо для соблюдения стандартов кодирования, руководств по стилю и основных принципов языка программирования, используемых в разработке программного обеспечения.

• Результаты код-ревью иногда могут вызывать разногласия между ревьюером и разработчиком. Программист может не соглашаться с правильностью и актуальностью сделанных замечаний. Такие разногласия следует разрешать на основе общепринятых практик, изложенных в руководстве по стандартам кодирования, а также учитывая мнения экспертов с большим опытом в данной области.
Методы обзора исходного кода

Примеры комментариев к ревью кода:

  1. Повышение эффективности кода:
    • "Рассмотрите возможность использования словаря вместо цикла для проверки существования элемента в списке".
    • "Этот участок кода можно рефакторить, чтобы использовать выражение-генератор".
  2. Улучшение читабельности:
    • "Имя переменной 'temp' недостаточно описывает ее, пожалуйста, придумайте более осмысленное имя".
    • "Функцию можно сделать более читабельной, добавив к ней doc-строку, объясняющую ее назначение".
  3. Обработка ошибок:
    • "Этот код не обрабатывает исключения должным образом, пожалуйста, добавьте блок try-except для обработки возможных ошибок".
    • "В данном случае не следует возвращать None, подумайте о том, чтобы вместо этого выбросить исключение".
  4. Безопасность:
    • "Убедитесь, что пользовательский ввод санирован правильно, чтобы избежать атак XSS и SQL-инъекций".
    • "Рассмотрите возможность использования библиотеки типа hashlib для безопасного хэширования паролей вместо модуля sha256".
  5. Тестовое покрытие:
    • "Этому коду нужно больше тестовых примеров, чтобы обеспечить полное покрытие и предотвратить регрессии".
    • "Пожалуйста, добавьте отрицательные тестовые случаи, чтобы проверить поведение кода в непредвиденных ситуациях".
  6. Стандарты кода и лучшие практики:
    • "Функция не должна иметь побочных эффектов, пожалуйста, отрефакторите ее, чтобы она возвращала только значение".
    • "Избегайте использования глобальных переменных, вместо них используйте свойства класса или аргументы функций".

Методы озора исходного кода

Эффективные подходы ревью кода

• Определите цели и стандарты компании. Перед началом процесса кода-ревью необходимо определить ключевые параметры и установить ясные цели. Цели компании должны соответствовать стандартам программирования. Установив свои стандарты, компания должна гарантировать соответствие всех разрабатываемых программных продуктов требованиям.

• Создайте чек-лист для проверки кода. Чек-лист состоит из набора рекомендаций и вопросов, которыми компания следует во время проверки кода. Такой подход помогает организовать необходимые процедуры проверки качества кода перед его утверждением в кодовой базе.

• Установите метрики для оценки кода. Эффективность повышения качества кода должна быть оценена при помощи объективных метрик. Используя такие метрики, можно изучить влияние изменений и оценить результаты своих оценок. • Ограничьте количество проверяемых строк кода за один раз. Это необходимо для обеспечения одинаковой эффективности процесса обзора кода.

• Используйте инструменты автоматизации. Каждая команда или компания, занимающаяся разработкой, должна иметь специализированные инструменты для автоматизации проверки кода. С помощью таких инструментов можно сократить время проверки до нескольких минут. Они способны проанализировать всю базу кода за считанные минуты, обнаружить ошибки и дублированный код, а также предложить варианты исправлений.

Некоторые из таких инструментов включают PVS-Studio (для выявления опечаток, неиспользуемого кода и потенциальных уязвимостей), SonarQube (для проверки ошибок, соответствия стандартам кодирования и технического долга), AppRefactoring (для выявления дублированного кода и пересечений фрагментов кода, предоставляющего информацию для создания уникального кода), Codacy (для выявления ошибок в коде и проблем безопасности) и другие.

• Предоставьте положительную обратную связь на обзоре кода. Исходный код может быть результатом парного программирования, поэтому полезно давать обратную связь о положительных изменениях и рекомендациях. Чек-лист для ревью кода

Примеры чек-листа ревью кода:

  1. Структура кода:
    • Правильные отступы и форматирование
    • Соответствие правилам именования и четкая организация кода
    • Наличие комментариев и документации
  2. Оптимизация и производительность:
    • Эффективность и оптимизация кода
    • Избегание ресурсоемких операций
  3. Безопасность:
    • Валидация и защита ввода данных
    • Практика безопасного программирования (например, предотвращение SQL-инъекций)
    • Защита от распространенных угроз (например, XSS атак)
  4. Функциональность:
    • Правильное и ожидаемое поведение кода
    • Обработка и отладка ошибок
  5. Тестирование:
    • Правильное тестирование и покрытие кода тестами
    • Создание корректных тестовых случаев и условий
  6. Стандарты кодирования и лучшие практики:
    • Соблюдение профессиональных стандартов и соглашений
    • Возможность повторного использования кода, поддерживаемость и масштабируемость
    • Правильная обработка ошибок и исключений


Анализ дублированного кода

В среде разработчиков широко распространено мнение о важности проверки кода на наличие дублирования и пересечений, что подтверждается практикой. Ревью кода должно включать контроль за дублированием кода, так как это позволяет легче вносить изменения в будущем и сокращает технический долг.

Одной из метрик, которую можно использовать, является процентное соотношение дублирующихся фрагментов кода к общему количеству строк кода. Для поиска и удаления дублированного кода можно использовать инструменты, например, AppRefactoring. Это сервис помогает обнаружить и удалить дублированный код, а также провести рефакторинг программного обеспечения.

Заключение

Основная цель код-ревью - обеспечить общее качество и безопасность программной системы. Ревью кода коллег не должно вызывать страх или разочарование. Установите стандарты для процесса проверки кода, используйте метрики и автоматизированные инструменты, чтобы помочь в анализе и улучшении исходного кода.

Использованная литература