Easy authcache 2   кеширование для pro родионов игорь
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 743 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
743
On Slideshare
731
From Embeds
12
Number of Embeds
1

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 12

http://drupalconf.ru 12

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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