[PHP] Code review, это просто
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Добрый день, уважаемые хабравчане,
В последнее время в сообществе PHP часто слышу обсуждения по поводу code review, решил внести свой вклад, хочу рассказать о возможностях которые предназначены упростить вам жизнь и улучшить качество кода в вашем проекте. Актуально не только для PHP, подобные инструменты, описанным здесь, существуют также и для других языков программирования, например я узнал о таковых когда участвовал в проекте на NodeJS
Из чего состоит review
design review — анализ проекта, документированная, всесторонняя и систематическая проверка проекта с целью оценки его возможности выполнять требования к качеству, выявлять проблемы и определять способы их решения.
code review — проверка исходного кода программы с целью обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки.
design review является темой для отдельной статьи и здесь обсуждаться не будет, хочу вкратце рассказать об инструментах которые помогают проводить code review.
Pre-commit review
Вид review, проводится перед внесением изменений в вашу систему управления версиями (git, svn, mercurial и т.п.). Если в поисковике наберете “pre-commit php”, то он вам выдаст несколько уже готовых скриптов проводящих анализ написанного кода. Для git, скрипт надо разместить в папке “.git/hooks/” и тогда каждый раз, когда делаете commit он будет запускаться и если будут обнаружены ошибки, то просто не даст запушить код в репозиторий. Для некоторых IDE есть отдельные плагины которые делают то же самое, но что, если у вас большая команда и все пользуются разными редакторами? Да и настроить данный скрипт один раз, выложив его в ваш репозиторий, проще, нежели для каждого разработчика по отдельности настраивать его IDE. Что еще важно, в данный скрипт вы можете добавить любые другие инструменты которые используете в своей команде, такие как статический анализатор (например phpstan), и/или производить юнит тестирование (например phpunit)
Ниже представлены несколько инструментов которыми вы можете проводить анализ кода и вставить их в pre-commit скрипт если пожелаете.
php -l (Syntax check only (lint)) — встроенная в ядро PHP проверка синтаксиса.
php-cs-fixer (PHP Coding Standards Fixer) — Исправляет ваш код в соответствии со стандартами PSR-1, PSR-2 и т. д., или другим сообществам, таким как Symfony. Вы также можете определить свой (командный) стиль через конфигурацию. Т.е. во всей вашей команде стиль кода будет один.
php-cs + php-cbf (PHP CodeSniffer + PHP Code Beautifier) — Представляет собой набор из двух PHP-скриптов; Основной скрипт phpcs, который выделяет PHP, JavaScript и CSS-файлы для обнаружения нарушений определенного стандарта кодирования, а второй скрипт phpcbf автоматически исправляет стандартные нарушения кодирования. Схожий инструмент с php-cs-fixer.
php-md (PHP Mess Detector) — Побочный проект PHP Depend, цель которого стать PHP-эквивалентом хорошо известного инструмента Java PMD. Берет заданную базу исходного кода PHP и ищет несколько потенциальных проблем в этом источнике. Эти проблемы могут быть такими, как синтаксические ошибки, субоптимальный код, слишком сложные выражения, неиспользуемые параметры/методы/свойства.
php-cpd (PHP Copy/Paste Detector) — Детектор копирования / вставки для кода PHP. Т.е. находит одинаковые блоки кода в различных частях приложения которые можно вынести в отдельные функции/методы.
Вы можете более глубоко погрузиться в автоматизацию проверки кода и вероятно найдете много других интересных инструментов.
Вывод
Используя имеющиеся в мире разработки инструменты многие рутинные процессы по проверке кода вы можете автоматизировать, что на порядок улучшит его качество (т.к. мы исключаем человеческий фактор) и больше уделить вниманию design review. Для большей уверенности в использовании этих инструментов всей командой их можно внедрять в pre-commit скрипт который запускается перед созданием коммита в вашей системе управления версиями.
===========
Источник:
habr.com
===========
Похожие новости:
- [PHP, Программирование] Понимаем JIT в PHP 8 (перевод)
- [1С-Битрикс, API, PHP, Разработка веб-сайтов] Ещё один велосипед: пишем свой автозагрузчик классов для Битрикс
- Выпуск Psalm 3.12, статистического анализитора для языка PHP. Альфа выпуск PHP 8.0
- [IT-стандарты, Интерфейсы, Спортивное программирование, Функциональное программирование] Минимизация кликов и горячие клавиши для жизни разработчика + Темнее Тёмной Темноты
- [PHP, Symfony, Тестирование веб-сервисов] 10 советов по тестированию в Symfony (перевод)
- [PHP, Symfony] [Symfony 5] Раздельная авторизация для админов и пользователей с двумя разными сущностями и формами входа
- [PHP, Symfony, Совершенный код, Управление разработкой] Как быть, когда все советуют растащить проект на микросервисы. А ты не готов
- [JavaScript, Lua, PHP, Хакатоны] Эволюция real-time Web: примеры из практики (или с чем Lua справляется лучше JS)
- [Laravel, PHP, Разработка веб-сайтов] Laravel-Дайджест (22–28 июня 2020)
- [Laravel, PHP, Высокая производительность] Решение проблемы N+1 запроса без увеличения потребления памяти в Laravel (перевод)
Теги для поиска: #_php, #_statja (статья), #_php
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 16:14
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Добрый день, уважаемые хабравчане, В последнее время в сообществе PHP часто слышу обсуждения по поводу code review, решил внести свой вклад, хочу рассказать о возможностях которые предназначены упростить вам жизнь и улучшить качество кода в вашем проекте. Актуально не только для PHP, подобные инструменты, описанным здесь, существуют также и для других языков программирования, например я узнал о таковых когда участвовал в проекте на NodeJS Из чего состоит review design review — анализ проекта, документированная, всесторонняя и систематическая проверка проекта с целью оценки его возможности выполнять требования к качеству, выявлять проблемы и определять способы их решения. code review — проверка исходного кода программы с целью обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки. design review является темой для отдельной статьи и здесь обсуждаться не будет, хочу вкратце рассказать об инструментах которые помогают проводить code review. Pre-commit review Вид review, проводится перед внесением изменений в вашу систему управления версиями (git, svn, mercurial и т.п.). Если в поисковике наберете “pre-commit php”, то он вам выдаст несколько уже готовых скриптов проводящих анализ написанного кода. Для git, скрипт надо разместить в папке “.git/hooks/” и тогда каждый раз, когда делаете commit он будет запускаться и если будут обнаружены ошибки, то просто не даст запушить код в репозиторий. Для некоторых IDE есть отдельные плагины которые делают то же самое, но что, если у вас большая команда и все пользуются разными редакторами? Да и настроить данный скрипт один раз, выложив его в ваш репозиторий, проще, нежели для каждого разработчика по отдельности настраивать его IDE. Что еще важно, в данный скрипт вы можете добавить любые другие инструменты которые используете в своей команде, такие как статический анализатор (например phpstan), и/или производить юнит тестирование (например phpunit) Ниже представлены несколько инструментов которыми вы можете проводить анализ кода и вставить их в pre-commit скрипт если пожелаете. php -l (Syntax check only (lint)) — встроенная в ядро PHP проверка синтаксиса. php-cs-fixer (PHP Coding Standards Fixer) — Исправляет ваш код в соответствии со стандартами PSR-1, PSR-2 и т. д., или другим сообществам, таким как Symfony. Вы также можете определить свой (командный) стиль через конфигурацию. Т.е. во всей вашей команде стиль кода будет один. php-cs + php-cbf (PHP CodeSniffer + PHP Code Beautifier) — Представляет собой набор из двух PHP-скриптов; Основной скрипт phpcs, который выделяет PHP, JavaScript и CSS-файлы для обнаружения нарушений определенного стандарта кодирования, а второй скрипт phpcbf автоматически исправляет стандартные нарушения кодирования. Схожий инструмент с php-cs-fixer. php-md (PHP Mess Detector) — Побочный проект PHP Depend, цель которого стать PHP-эквивалентом хорошо известного инструмента Java PMD. Берет заданную базу исходного кода PHP и ищет несколько потенциальных проблем в этом источнике. Эти проблемы могут быть такими, как синтаксические ошибки, субоптимальный код, слишком сложные выражения, неиспользуемые параметры/методы/свойства. php-cpd (PHP Copy/Paste Detector) — Детектор копирования / вставки для кода PHP. Т.е. находит одинаковые блоки кода в различных частях приложения которые можно вынести в отдельные функции/методы. Вы можете более глубоко погрузиться в автоматизацию проверки кода и вероятно найдете много других интересных инструментов. Вывод Используя имеющиеся в мире разработки инструменты многие рутинные процессы по проверке кода вы можете автоматизировать, что на порядок улучшит его качество (т.к. мы исключаем человеческий фактор) и больше уделить вниманию design review. Для большей уверенности в использовании этих инструментов всей командой их можно внедрять в pre-commit скрипт который запускается перед созданием коммита в вашей системе управления версиями. =========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 16:14
Часовой пояс: UTC + 5