easy authcache 2 - кеширование для pro
DESCRIPTION
Easy authcache 2 - кеширование для Pro. Игорь Родионов. Drupal expert [email protected]. Родионов Игорь. Cooking Drupal ~ 5 years ~ 14 projects ~ 60 patches ~16 approved. Drupal. Drupal. Преждевременная оптимизация. Drupal. Кеширование. Кеширование. Кеширование. Кеширование. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/2.jpg)
Родионов Игорь
Cooking Drupal
~ 5 years~ 14 projects~ 60 patches
~16 approved
![Page 3: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/3.jpg)
Drupal
![Page 4: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/4.jpg)
Drupal
![Page 5: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/5.jpg)
Преждевременная оптимизация
![Page 6: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/6.jpg)
Drupal
![Page 7: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/7.jpg)
Кеширование
![Page 8: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/8.jpg)
Кеширование
![Page 9: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/9.jpg)
Кеширование
![Page 10: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/10.jpg)
Кеширование
• Система разделения контента• Система доставки
“динамического” контента• Кеширующий прокси
![Page 11: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/11.jpg)
Система разделения контента
/**
* Implements hook_easy_authcache_register()
*/
function easy_authcache_block_easy_authcache_register() {
$items[] = array(
'theme' => 'block',
'mock callback' => 'easy_authcache_block_dynamic_args',
'callback' => 'easy_authcache_block_callback'
);
return $items;
}
![Page 12: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/12.jpg)
Система разделения контента
function easy_authcache_block_dynamic_args(&$vars) {
$module = $vars['block']->module;
$delta = $vars['block']->module;
$conf = _easy_authcache_block_settings($module, $delta);
if ($conf['is_dynamic']) {
$block_id = _easy_authcache_block_id($module, $delta);
$params = array('region' => $vars['block']->region, 'block_id' => $block_id);
return array('id' => $block_id, 'params' => $params);
}
return null;
}
![Page 13: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/13.jpg)
Система разделения контента
/**
* Implements hook_easy_authcache_register()
*/
function easy_authcache_block_easy_authcache_register() {
$items[] = array(
'theme' => 'block',
'mock callback' => 'easy_authcache_block_dynamic_args',
'callback' => 'easy_authcache_block_callback'
);
return $items;
}
![Page 14: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/14.jpg)
Система разделения контента
function easy_authcache_block_callback($data) {
if (empty($data)) {
return '';
}
$block_id = $data['block_id'];
......... COPY PASTE FROM DRUPAL CORE BLOCK MODULE..........
// Process each block
$block->region = $data['region'];
......... COPY PASTE FROM DRUPAL CORE BLOCK MODULE..........
$output = theme('block', $block);
return $output;
}
![Page 15: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/15.jpg)
Система разделения контента
/**
* Implements hook_easy_authcache_register()
*/
function easy_authcache_block_easy_authcache_register() {
$items[] = array(
'theme' => 'block',
'mock callback' => 'easy_authcache_block_dynamic_args',
'callback' => 'easy_authcache_block_callback'
);
return $items;
}
![Page 16: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/16.jpg)
Система доставки контента
• ESI – Edge side includes– CDN (Akamai)– Caching proxy (Varnish,Squid,Mongrel)
• SSI – Server side includes– Web server (Apache, nginx, lighttpd, IIS)
• Ajax – Client side include– Web browsers with JavaScript support
![Page 17: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/17.jpg)
Клуб анонимных друпалеров
“А можем мы обновить ядро?”
![Page 18: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/18.jpg)
Клуб анонимных друпалеров
![Page 19: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/19.jpg)
Клуб анонимных друпалеров
![Page 20: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/20.jpg)
Клуб анонимных друпалеров
Возми проект под контроль!
![Page 21: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/21.jpg)
Непрерывная интеграция
• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Часты релизы
![Page 22: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/22.jpg)
Непрерывная интеграция
![Page 23: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/23.jpg)
Deploy
![Page 24: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/24.jpg)
Deploy
Code Run
SVNGITCVS MercurialFTPSFTP
Bash ManualBash SSHVCS Hooks CronCapistrano Phingistrano
![Page 25: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/25.jpg)
Инспекция
![Page 26: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/26.jpg)
Инспекция – Copy - Paste
PHPCPD
pear install phpunit/phpcpd
![Page 27: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/27.jpg)
Инспекция - Mess
phplint
icosaedro.it/phplint
![Page 28: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/28.jpg)
Инспекция - Mess
PHPMDphpmd.org
______________________________
Code Size Rules
Design Rules
Naming Rules
Unused Code Rules
![Page 29: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/29.jpg)
Инспекция – Code Style
Code Sniffer
pear install PHP_CodeSniffer
Drupal Code Sniffer
drupal.org/project/drupalcs
![Page 30: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/30.jpg)
Тестирование
![Page 31: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/31.jpg)
Тестирование
Selenium + Unit testing framework
+ Functional тестирование
- Unit тестирование
+ Поддержка Java Script
- Доступ к API Drupal
- Атомарность тестов
- Хрупкость тестов
- Запуск тестов паралельно
- Производительность тестов
![Page 32: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/32.jpg)
Тестирование
Simpletest/Simpletest clone
+ Functional тестирование
+ Unit тестирование
- Поддержка Java Script
+ Доступ к API Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
![Page 33: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/33.jpg)
Тестирование
Simpletest/Simpletest clone/Selenium
+ Functional тестирование
+ Unit тестирование
+ Поддержка Java Script
+ Доступ к API Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
![Page 34: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/34.jpg)
Сборка
![Page 35: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/35.jpg)
Сборка
![Page 36: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/36.jpg)
Сборка
•Contribute•Custom•Forked
![Page 37: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/37.jpg)
Сборка
•Contribute•Custom•Forked Patches
![Page 38: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/38.jpg)
Сборка
Drush make
projects[admin_menu][version] = "3.0-rc1"
projects[admin_menu][subdir] = "contrib/dev"
projects[admin_menu][patch][] = "patches/admin_menu_font.patch"
![Page 39: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/39.jpg)
Непрерывная интеграция
• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Часты релизы
![Page 40: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/40.jpg)
Сборка
• Drush make
• Корпоративные репозитории модулей
• Хакайте ядро и модули
• Возвращайте патчи в сообщество
![Page 41: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/41.jpg)
Сборка
Не храните
![Page 42: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/42.jpg)
Сборка
Модули Drush migrate
CущностиFeatures
Ctoolsdefault hooks
НастройкиStrongarm
CtoolsFeatures
КонтентUuid
Uuid featuresFeatures
![Page 43: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/43.jpg)
Сборка - phing
• $ phing make
• $ phing install
• $ phing update
• $ phing test
• $ phing inspect
• $ phing create
• $ phing phpcsetc ...
![Page 44: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/44.jpg)
Итого
• Контроль над проектом• Уменьшили время релиза• Уменьшили риски• Накопление “технического опыта”• Гибкость интеграции стороннего кода• 75% разработчиков счастливы
![Page 45: Easy authcache 2 - кеширование для Pro](https://reader035.vdocuments.net/reader035/viewer/2022081516/56813716550346895d9ea13d/html5/thumbnails/45.jpg)
Спасибо - друзьям
Родионову Алексею Мироненко Максиму
Тищенко МаксимуКоролькову Александру