Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Повышаем и следим за качеством PHP кода

4,149 views

Published on

Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.

Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review

Published in: Technology
  • Sex in your area is here: ♥♥♥ http://bit.ly/2Q98JRS ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❤❤❤ http://bit.ly/2Q98JRS ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Повышаем и следим за качеством PHP кода

  1. 1. Повышаем качество PHP кодаАлександр Махомет@amahomet
  2. 2. Стандарты● КодированияPSR-0, PSR-1, PSR-2● Наименования● Документирования● Тестирования● Понятный и знакомый код● Легче поддается анализу и рефакторингу● Меньше конфликтов
  3. 3. Анализаторы кода● PHP_CodeSniffer- Большое количество правил- PSR1, PSR2 из коробки- Гибкая настройка- Большое количество отчетов в различных форматах● PHPMD● PHP-Analyzer● PHPLint
  4. 4. Еще анализаторов● PHPDependСтроим метрики и графики● PHPCPDБоримся с копипастом● Pfff tools от facebookНабор различных инструментов● PHPQaToolsГотовый набор от Sebastian Bergmann● security.sensiolabs.orgБезопасны ли ваши зависимости?Google Gruyere + OWASP WebGoat
  5. 5. Legacy codeЧто делать если мы получили проект внаследие?● PHP-CS-Fixer● PHP-Analyzer
  6. 6. IDE● PHPStorm, NetBeans, Eclypse● Sublime, Vim● Анализ кода на лету● Поддержка стандартов кодирования● Проверка орфографии● Интеграция со стороннимиинструментами
  7. 7. PHPStorm
  8. 8. Git hooks● Client-Side Hooks- pre-commit● Server-Side Hooks- pre-receive- post-receiveЕще хуков
  9. 9. Pre-commit hook● Проверка php синтаксиса● Интеграция статических анализаторов● Запуск модульных тестовМожем проигнорировать с помощью--no-verify
  10. 10. Pre-commit hook + phpcs● Различные уровни ошибок- Good code- Warnings- Errors- Syntax error● Игнорирование директорий● Фильтрация по расширению файлов
  11. 11. Pre-commit + phpcs = Accepted
  12. 12. Pre-commit + phpcs = Rejected
  13. 13. Server side hooks● Уведомление на e-mail● Полное отклонение коммита- pre-receive- post-receive
  14. 14. Continuous integration● Запуск модульных тестов● Интеграция с инструментами- PHP_CodeSniffer- PHPMD
  15. 15. Sonar● Благодаря интеграции с рядоминструментов предоставляет множествоотчетов и метрик вашего проекта● Количество кода, функций, классов● Количество нарушений в коде● Количество дублированного кода● Покрытие тестамиПозволяет наблюдать динамику улучшениявашего проекта со временем
  16. 16. Sonar in action
  17. 17. Инструменты хороши,пора поговорить о методиках
  18. 18. Code Review● Позволяет находить ошибки в коде на ранних этапах● Повышает уровень разработчиков● Дисциплинирует● Распространяет знания о системе● Заставляет разработчика делать болеедекомпозированные, понятные коммиты что вконечном итоге влияет на качество кода ивозможности его анализа в дальнейшем- Дополнительные ресурсы, то есть время разработчиков- Возможны конфликты.
  19. 19. Реализация code review● Эй Семен, подойди посмотри код,● Используя Web интерфейс CVS системы.● Внешние не интегрированныеинструменты вроде codereview.google.com● Pull requests way.- Интегрировать автоматические средства проверки пул реквестов
  20. 20. Рекомендации по code review● Создать список того на что стоит обращатьвнимание в code review. Создать best practices попроцессу● Понимать и донести до всех что code review это некритика человека а критика его кода● Проводить ревью своевременно, не допускатьситуации когда приходится проверять мегабайтыкода.
  21. 21. Code review checklist● Решает ли код поставленную задачу● Соответствует ли код принятымстандартам проекта● Покрыт ли код юнит тестами● Не содержит ли код отладочнойинформации или мертвого кода● Безопасен ли код● Использует ли он принятые best practicesпроекта.
  22. 22. Еще методики● Test Driven Development (TDD)● Парное программирование● Scrum
  23. 23. Психологический климатПомимо технических методик по улучшению кода существую такжедругие, которые следует учитывать. Например психологический климат вколлективе, к нему относятся лидерские качества руководителя команды иособенности сработанности и сплоченности коллектива.Психологический климат в коллективе это высокий уровень мотивации вколлективе, общая цель в работе, комфорт общения в коллективе,эффективные коммуникации, график работы и степень занятостиМоральЧем более гармоничные отношения в команде тем лучше это длясработанности, коммуникаций и в итоге для качества вашего кода
  24. 24. Четкий сайтhttp://www.phptherightway.com/
  25. 25. Спасибо за вниманиеАлександр Махометhttp://twitter.com/amahomethttp://podumaem.com/contactshttp://zendframework.ruhttp://fwdays.com

×