Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.
Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review
2. Стандарты
● Кодирования
PSR-0, PSR-1, PSR-2
● Наименования
● Документирования
● Тестирования
● Понятный и знакомый код
● Легче поддается анализу и рефакторингу
● Меньше конфликтов
3. Анализаторы кода
● PHP_CodeSniffer
- Большое количество правил
- PSR1, PSR2 из коробки
- Гибкая настройка
- Большое количество отчетов в различных форматах
● PHPMD
● PHP-Analyzer
● PHPLint
4. Еще анализаторов
● PHPDepend
Строим метрики и графики
● PHPCPD
Боримся с копипастом
● Pfff tools от facebook
Набор различных инструментов
● PHPQaTools
Готовый набор от Sebastian Bergmann
● security.sensiolabs.org
Безопасны ли ваши зависимости?
Google Gruyere + OWASP WebGoat
6. IDE
● PHPStorm, NetBeans, Eclypse
● Sublime, Vim
● Анализ кода на лету
● Поддержка стандартов кодирования
● Проверка орфографии
● Интеграция со сторонними
инструментами
15. Sonar
● Благодаря интеграции с рядом
инструментов предоставляет множество
отчетов и метрик вашего проекта
● Количество кода, функций, классов
● Количество нарушений в коде
● Количество дублированного кода
● Покрытие тестами
Позволяет наблюдать динамику улучшения
вашего проекта со временем
18. Code Review
● Позволяет находить ошибки в коде на ранних этапах
● Повышает уровень разработчиков
● Дисциплинирует
● Распространяет знания о системе
● Заставляет разработчика делать более
декомпозированные, понятные коммиты что в
конечном итоге влияет на качество кода и
возможности его анализа в дальнейшем
- Дополнительные ресурсы, то есть время разработчиков
- Возможны конфликты.
19. Реализация code review
● Эй Семен, подойди посмотри код,
● Используя Web интерфейс CVS системы.
● Внешние не интегрированные
инструменты вроде codereview.google.com
● Pull requests way.
- Интегрировать автоматические средства проверки пул реквестов
20. Рекомендации по code review
● Создать список того на что стоит обращать
внимание в code review. Создать best practices по
процессу
● Понимать и донести до всех что code review это не
критика человека а критика его кода
● Проводить ревью своевременно, не допускать
ситуации когда приходится проверять мегабайты
кода.
21. Code review checklist
● Решает ли код поставленную задачу
● Соответствует ли код принятым
стандартам проекта
● Покрыт ли код юнит тестами
● Не содержит ли код отладочной
информации или мертвого кода
● Безопасен ли код
● Использует ли он принятые best practices
проекта.
22. Еще методики
● Test Driven Development (TDD)
● Парное программирование
● Scrum
23. Психологический климат
Помимо технических методик по улучшению кода существую также
другие, которые следует учитывать. Например психологический климат в
коллективе, к нему относятся лидерские качества руководителя команды и
особенности сработанности и сплоченности коллектива.
Психологический климат в коллективе это высокий уровень мотивации в
коллективе, общая цель в работе, комфорт общения в коллективе,
эффективные коммуникации, график работы и степень занятости
Мораль
Чем более гармоничные отношения в команде тем лучше это для
сработанности, коммуникаций и в итоге для качества вашего кода