0
Easy authcache 2 -кеширование для Pro              Игорь Родионов              Drupal expert              rodionov.ig@gmai...
Спонсоры     Организатор      Генеральный спонсор Серебряный спонсор   Серебряный спонсор Бронзовый спонсор     Бронзовый ...
Родионов ИгорьCooking Drupal      ~ 5 years   ~ 14 projects   ~ 60 patches  ~16 approved
Drupal
Drupal
Преждевременная оптимизация
Drupal
Кеширование
Кеширование
Кеширование
Кеширование• Система разделения контента• Система доставки  “динамического” контента• Кеширующий прокси
Система разделения контента/** * Implements hook_easy_authcache_register() */function easy_authcache_block_easy_authcache_...
Система разделения контентаfunction easy_authcache_block_dynamic_args(&$vars) {    $module = $vars[block]->module;    $del...
Система разделения контента/** * Implements hook_easy_authcache_register() */function easy_authcache_block_easy_authcache_...
Система разделения контентаfunction easy_authcache_block_callback($data) {    if (empty($data)) {        return ;    }    ...
Система разделения контента/** * Implements hook_easy_authcache_register() */function easy_authcache_block_easy_authcache_...
Система доставки контента• ESI – Edge side includes – CDN (Akamai) – Caching proxy (Varnish,Squid,Mongrel)• SSI – Server s...
Клуб анонимных друпалеров“А можем мы обновить ядро?”
Клуб анонимных друпалеров      откуда я то знаю?
Клуб анонимных друпалеров
Клуб анонимных друпалеров
Клуб анонимных друпалеров Возми проект под контроль!
Непрерывная интеграция• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Ча...
Непрерывная интеграция
Deploy
Deploy     Code          RunSVN         Bash ManualGIT         Bash SSHCVS         VCS Hooks CronMercurial   CapistranoFTP...
Инспекция
Инспекция – Copy - Paste                 PHPCPD               pear install phpunit/phpcpd
Инспекция - Mess  phplinticosaedro.it/phplint
Инспекция - Mess PHPMD    phpmd.org______________________________ Code Size Rules  Design Rules  Naming RulesUnused Code R...
Инспекция – Code Style                  Code Sniffer                  pear install PHP_CodeSniffer                  Drupal...
Тестирование
ТестированиеSelenium + Unit testing framework+ Functional тестирование- Unit тестирование+ Поддержка Java Script- Доступ к...
ТестированиеSimpletest/Simpletest clone+ Functional тестирование+ Unit тестирование- Поддержка Java Script+ Доступ к API D...
ТестированиеSimpletest/Simpletest clone/Selenium+ Functional тестирование+ Unit тестирование+ Поддержка Java Script+ Досту...
Сборка
Сборка
Сборка   • Contribute   • Custom   • Forked
Сборка   • Contribute   • Custom   • Forked Patches
Сборка           Drush makeprojects[admin_menu][version] = "3.0-rc1"projects[admin_menu][subdir] = "contrib/dev"projects[a...
Непрерывная интеграция• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Ча...
Сборка• Drush make• Корпоративные  репозитории  модулей• Хакайте ядро и  модули• Возвращайте патчи в  сообщество
Сборка  Не храните
Сборка   Модули     Drush migrate                Features  Cущности       Ctools              default hooks               ...
Сборка - phing                 • $ phing make                 • $ phing install                 • $ phing update          ...
Итого•   Контроль над проектом•   Уменьшили время релиза•   Уменьшили риски•   Накопление “технического опыта”•   Гибкость...
Спасибо - друзьямРодионову Алексею             Мироненко МаксимуТищенко Максиму          Королькову Александру
Спасибо за внимание     Вопросы?          Игорь Родионов          Drupal expert          rodionov.ig@gmail.com
Спонсоры     Организатор      Генеральный спонсор Серебряный спонсор   Серебряный спонсор Бронзовый спонсор     Бронзовый ...
Upcoming SlideShare
Loading in...5
×

Easy authcache 2 кеширование для pro родионов игорь

383

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
383
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Easy authcache 2 кеширование для pro родионов игорь"

  1. 1. Easy authcache 2 -кеширование для Pro Игорь Родионов Drupal expert rodionov.ig@gmail.com
  2. 2. Спонсоры Организатор Генеральный спонсор Серебряный спонсор Серебряный спонсор Бронзовый спонсор Бронзовый спонсор
  3. 3. Родионов ИгорьCooking Drupal ~ 5 years ~ 14 projects ~ 60 patches ~16 approved
  4. 4. Drupal
  5. 5. Drupal
  6. 6. Преждевременная оптимизация
  7. 7. Drupal
  8. 8. Кеширование
  9. 9. Кеширование
  10. 10. Кеширование
  11. 11. Кеширование• Система разделения контента• Система доставки “динамического” контента• Кеширующий прокси
  12. 12. Система разделения контента/** * 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;}
  13. 13. Система разделения контента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;}
  14. 14. Система разделения контента/** * 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;}
  15. 15. Система разделения контента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;}
  16. 16. Система разделения контента/** * 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;}
  17. 17. Система доставки контента• 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
  18. 18. Клуб анонимных друпалеров“А можем мы обновить ядро?”
  19. 19. Клуб анонимных друпалеров откуда я то знаю?
  20. 20. Клуб анонимных друпалеров
  21. 21. Клуб анонимных друпалеров
  22. 22. Клуб анонимных друпалеров Возми проект под контроль!
  23. 23. Непрерывная интеграция• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Часты релизы
  24. 24. Непрерывная интеграция
  25. 25. Deploy
  26. 26. Deploy Code RunSVN Bash ManualGIT Bash SSHCVS VCS Hooks CronMercurial CapistranoFTP PhingistranoSFTP
  27. 27. Инспекция
  28. 28. Инспекция – Copy - Paste PHPCPD pear install phpunit/phpcpd
  29. 29. Инспекция - Mess phplinticosaedro.it/phplint
  30. 30. Инспекция - Mess PHPMD phpmd.org______________________________ Code Size Rules Design Rules Naming RulesUnused Code Rules
  31. 31. Инспекция – Code Style Code Sniffer pear install PHP_CodeSniffer Drupal Code Sniffer drupal.org/project/drupalcs
  32. 32. Тестирование
  33. 33. ТестированиеSelenium + Unit testing framework+ Functional тестирование- Unit тестирование+ Поддержка Java Script- Доступ к API Drupal- Атомарность тестов- Хрупкость тестов- Запуск тестов паралельно- Производительность тестов
  34. 34. ТестированиеSimpletest/Simpletest clone+ Functional тестирование+ Unit тестирование- Поддержка Java Script+ Доступ к API Drupal+ Атомарность тестов+ Хрупкость тестов+ Запуск тестов паралельно+ Производительность тестов
  35. 35. ТестированиеSimpletest/Simpletest clone/Selenium+ Functional тестирование+ Unit тестирование+ Поддержка Java Script+ Доступ к API Drupal+ Атомарность тестов+ Хрупкость тестов+ Запуск тестов паралельно+ Производительность тестов
  36. 36. Сборка
  37. 37. Сборка
  38. 38. Сборка • Contribute • Custom • Forked
  39. 39. Сборка • Contribute • Custom • Forked Patches
  40. 40. Сборка Drush makeprojects[admin_menu][version] = "3.0-rc1"projects[admin_menu][subdir] = "contrib/dev"projects[admin_menu][patch][] = "patches/admin_menu_font.patch"
  41. 41. Непрерывная интеграция• Избавится от рутины• Регрессионное тестирование• Быстрая обратная связь• Уверенность в проекте• Часты релизы
  42. 42. Сборка• Drush make• Корпоративные репозитории модулей• Хакайте ядро и модули• Возвращайте патчи в сообщество
  43. 43. Сборка Не храните
  44. 44. Сборка Модули Drush migrate Features Cущности Ctools default hooks Strongarm Настройки Ctools Features Uuid Контент Uuid features Features
  45. 45. Сборка - phing • $ phing make • $ phing install • $ phing update • $ phing test • $ phing inspect • $ phing create • $ phing phpcs etc ...
  46. 46. Итого• Контроль над проектом• Уменьшили время релиза• Уменьшили риски• Накопление “технического опыта”• Гибкость интеграции стороннего кода• 75% разработчиков счастливы
  47. 47. Спасибо - друзьямРодионову Алексею Мироненко МаксимуТищенко Максиму Королькову Александру
  48. 48. Спасибо за внимание Вопросы? Игорь Родионов Drupal expert rodionov.ig@gmail.com
  49. 49. Спонсоры Организатор Генеральный спонсор Серебряный спонсор Серебряный спонсор Бронзовый спонсор Бронзовый спонсор
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×