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