Слайд 2Родионов Игорь
Cooking Drupal
~ 5 years
~ 14 projects
~ 60 patches
~16 approved
Слайд 3Родионов Игорь
Cooking Drupal
~ 5 years
~ 14 projects
~ 60 patches
~16 approved
Слайд 7Почему так?
список модулей в БД
настройки в БД
структура данных в БД
сущности в БД
workflow
в БД
php код в БД
самодокументация
1001 способ говнокода
Слайд 8Клуб анонимных друпалеров
Как мы будем работать с БД?
Слайд 9Клуб анонимных друпалеров
“А можем мы обновить ядро?”
Слайд 10Клуб анонимных друпалеров
откуда я то знаю?
Слайд 13Клуб анонимных друпалеров
Возми проект под контроль!
Слайд 14Непрерывная интеграция
Build (сборка)
Inspection (инспекция)
Test (тестирование)
Deploy / Artifact (выкладка/получение артифакта)
Слайд 15Непрерывная интеграция
Избавится от рутины
Регрессионное тестирование
Быстрая обратная связь
Уверенность в проекте
Часты релизы
Слайд 20Инспекция – Copy - Paste
PHPCPD
pear install phpunit/phpcpd
Слайд 21Инспекция - Mess
phplint
icosaedro.it/phplint
Слайд 22Инспекция - Mess
PHPMD
phpmd.org
______________________________
Code Size Rules
Design Rules
Naming Rules
Unused Code Rules
Слайд 23Инспекция – Code Style
Code Sniffer
pear install PHP_CodeSniffer
Drupal Code Sniffer
drupal.org/project/drupalcs
Слайд 25Тестирование
Selenium + Unit testing framework
+ Functional тестирование
- Unit тестирование
+ Поддержка Java Script
-
Доступ к API Drupal
- Атомарность тестов
- Хрупкость тестов
- Запуск тестов паралельно
- Производительность тестов
Слайд 26Тестирование
Simpletest/Simpletest clone
+ Functional тестирование
+ Unit тестирование
- Поддержка Java Script
+ Доступ к API
Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
Слайд 27Тестирование
Simpletest/Simpletest clone/Selenium
+ Functional тестирование
+ Unit тестирование
+ Поддержка Java Script
+ Доступ к API
Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
Слайд 31Сборка
Contribute
Custom
Forked Patches
Слайд 32Сборка
Drush make
projects[admin_menu][version] = "3.0-rc1"
projects[admin_menu][subdir] = "contrib/dev"
projects[admin_menu][patch][] = "patches/admin_menu_font.patch"
Слайд 33Сборка
Drush make
Корпоративные репозитории модулей
Хакайте ядро и модули
Возвращайте патчи в сообщество
Слайд 36Сборка - phing
$ phing make
$ phing install
$ phing update
$ phing test
$ phing
inspect
$ phing create
$ phing phpcs
etc ...
Слайд 37Итого
Контроль над проектом
Уменьшили время релиза
Уменьшили риски
Накопление “технического опыта”
Гибкость интеграции стороннего кода
75% разработчиков
счастливы
Слайд 38Спасибо - друзьям
Родионову Алексею
Мироненко Максиму
Тищенко Максиму
Королькову Александру