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

924 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
924
On SlideShare
0
From Embeds
0
Number of Embeds
519
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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. Спонсоры Организатор Генеральный спонсор Серебряный спонсор Серебряный спонсор Бронзовый спонсор Бронзовый спонсор

×