Top Banner
Easy authcache 2 - кеширование для Pro Drupal expert [email protected] Игорь Родионов
46

Easy authcache 2 - кеширование для Pro

Jan 03, 2016

Download

Documents

jayme-ramirez

Easy authcache 2 - кеширование для Pro. Игорь Родионов. Drupal expert [email protected]. Родионов Игорь. Cooking Drupal ~ 5 years ~ 14 projects ~ 60 patches ~16 approved. Drupal. Drupal. Преждевременная оптимизация. Drupal. Кеширование. Кеширование. Кеширование. Кеширование. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Easy authcache 2 - кеширование для Pro

Easy authcache 2 - кеширование для Pro

Drupal expert

[email protected]

Игорь Родионов

Page 2: Easy authcache 2 - кеширование для Pro

Родионов Игорь

Cooking Drupal

~ 5 years~ 14 projects~ 60 patches

~16 approved

Page 3: Easy authcache 2 - кеширование для Pro

Drupal

Page 4: Easy authcache 2 - кеширование для Pro

Drupal

Page 5: Easy authcache 2 - кеширование для Pro

Преждевременная оптимизация

Page 6: Easy authcache 2 - кеширование для Pro

Drupal

Page 7: Easy authcache 2 - кеширование для Pro

Кеширование

Page 8: Easy authcache 2 - кеширование для Pro

Кеширование

Page 9: Easy authcache 2 - кеширование для Pro

Кеширование

Page 10: Easy authcache 2 - кеширование для Pro

Кеширование

• Система разделения контента• Система доставки

“динамического” контента• Кеширующий прокси

Page 11: Easy authcache 2 - кеширование для Pro

Система разделения контента

/**

* 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

Система разделения контента

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

Система разделения контента

/**

* 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

Система разделения контента

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

Система разделения контента

/**

* 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

Система доставки контента

• 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

Клуб анонимных друпалеров

“А можем мы обновить ядро?”

Page 18: Easy authcache 2 - кеширование для Pro

Клуб анонимных друпалеров

Page 19: Easy authcache 2 - кеширование для Pro

Клуб анонимных друпалеров

Page 20: Easy authcache 2 - кеширование для Pro

Клуб анонимных друпалеров

Возми проект под контроль!

Page 21: Easy authcache 2 - кеширование для Pro

Непрерывная интеграция

• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Часты релизы

Page 22: Easy authcache 2 - кеширование для Pro

Непрерывная интеграция

Page 23: Easy authcache 2 - кеширование для Pro

Deploy

Page 24: Easy authcache 2 - кеширование для Pro

Deploy

Code Run

SVNGITCVS MercurialFTPSFTP

Bash ManualBash SSHVCS Hooks CronCapistrano Phingistrano

Page 25: Easy authcache 2 - кеширование для Pro

Инспекция

Page 26: Easy authcache 2 - кеширование для Pro

Инспекция – Copy - Paste

PHPCPD

pear install phpunit/phpcpd

Page 27: Easy authcache 2 - кеширование для Pro

Инспекция - Mess

phplint

icosaedro.it/phplint

Page 28: Easy authcache 2 - кеширование для Pro

Инспекция - Mess

PHPMDphpmd.org

______________________________

Code Size Rules

Design Rules

Naming Rules

Unused Code Rules

Page 29: Easy authcache 2 - кеширование для Pro

Инспекция – Code Style

Code Sniffer

pear install PHP_CodeSniffer

Drupal Code Sniffer

drupal.org/project/drupalcs

Page 30: Easy authcache 2 - кеширование для Pro

Тестирование

Page 31: Easy authcache 2 - кеширование для Pro

Тестирование

Selenium + Unit testing framework

+ Functional тестирование

- Unit тестирование

+ Поддержка Java Script

- Доступ к API Drupal

- Атомарность тестов

- Хрупкость тестов

- Запуск тестов паралельно

- Производительность тестов

Page 32: Easy authcache 2 - кеширование для Pro

Тестирование

Simpletest/Simpletest clone

+ Functional тестирование

+ Unit тестирование

- Поддержка Java Script

+ Доступ к API Drupal

+ Атомарность тестов

+ Хрупкость тестов

+ Запуск тестов паралельно

+ Производительность тестов

Page 33: Easy authcache 2 - кеширование для Pro

Тестирование

Simpletest/Simpletest clone/Selenium

+ Functional тестирование

+ Unit тестирование

+ Поддержка Java Script

+ Доступ к API Drupal

+ Атомарность тестов

+ Хрупкость тестов

+ Запуск тестов паралельно

+ Производительность тестов

Page 34: Easy authcache 2 - кеширование для Pro

Сборка

Page 35: Easy authcache 2 - кеширование для Pro

Сборка

Page 36: Easy authcache 2 - кеширование для Pro

Сборка

•Contribute•Custom•Forked

Page 37: Easy authcache 2 - кеширование для Pro

Сборка

•Contribute•Custom•Forked Patches

Page 38: Easy authcache 2 - кеширование для Pro

Сборка

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

Непрерывная интеграция

• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Часты релизы

Page 40: Easy authcache 2 - кеширование для Pro

Сборка

• Drush make

• Корпоративные репозитории модулей

• Хакайте ядро и модули

• Возвращайте патчи в сообщество

Page 41: Easy authcache 2 - кеширование для Pro

Сборка

Не храните

Page 42: Easy authcache 2 - кеширование для Pro

Сборка

Модули Drush migrate

CущностиFeatures

Ctoolsdefault hooks

НастройкиStrongarm

CtoolsFeatures

КонтентUuid

Uuid featuresFeatures

Page 43: Easy authcache 2 - кеширование для Pro

Сборка - phing

• $ phing make

• $ phing install

• $ phing update

• $ phing test

• $ phing inspect

• $ phing create

• $ phing phpcsetc ...

Page 44: Easy authcache 2 - кеширование для Pro

Итого

• Контроль над проектом• Уменьшили время релиза• Уменьшили риски• Накопление “технического опыта”• Гибкость интеграции стороннего кода• 75% разработчиков счастливы

Page 45: Easy authcache 2 - кеширование для Pro

Спасибо - друзьям

Родионову Алексею Мироненко Максиму

Тищенко МаксимуКоролькову Александру

Page 46: Easy authcache 2 - кеширование для Pro

Спасибо за внимание

Вопросы?

Drupal expert

[email protected]

Игорь Родионов