Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

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

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 49 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (18)

Ähnlich wie Easy authcache 2 кэширование для pro. Родионов Игорь (20)

Anzeige

Weitere von PVasili (20)

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 Run SVN Bash Manual GIT Bash SSH CVS VCS Hooks Cron Mercurial Capistrano FTP Phingistrano SFTP
  27. 27. Инспекция
  28. 28. Инспекция – Copy - Paste PHPCPD pear install phpunit/phpcpd
  29. 29. Инспекция - Mess phplint icosaedro.it/phplint
  30. 30. Инспекция - Mess PHPMD phpmd.org ______________________________ Code Size Rules Design Rules Naming Rules Unused 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 make projects[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. Спонсоры Организатор Генеральный спонсор Серебряный спонсор Серебряный спонсор Бронзовый спонсор Бронзовый спонсор

×