Слайд 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"
![Сборка 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
Корпоративные репозитории модулей
Хакайте ядро и модули
Возвращайте патчи в сообщество

Слайд 36Сборка - phing
$ phing make
$ phing install
$ phing update
$ phing test
$ phing

inspect
$ phing create
$ phing phpcs
etc ...
Слайд 37Итого
Контроль над проектом
Уменьшили время релиза
Уменьшили риски
Накопление “технического опыта”
Гибкость интеграции стороннего кода
75% разработчиков

счастливы
Слайд 38Спасибо - друзьям
Родионову Алексею
Мироненко Максиму
Тищенко Максиму
Королькову Александру
