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

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

              Drupal expert
              rodionov.ig@gmail.com
Спонсоры
     Организатор      Генеральный спонсор




 Серебряный спонсор   Серебряный спонсор




 Бронзовый спонсор     Бронзовый спонсор
Родионов Игорь

Cooking Drupal
      ~ 5 years
   ~ 14 projects
   ~ 60 patches
  ~16 approved
Drupal
Drupal
Преждевременная оптимизация
Drupal
Кеширование
Кеширование
Кеширование
Кеширование


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

/**
 * 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;
}
Система разделения контента

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;
}
Система разделения контента

/**
 * 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;
}
Система разделения контента
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;
}
Система разделения контента

/**
 * 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;
}
Система доставки контента

• 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
Клуб анонимных друпалеров




“А можем мы обновить ядро?”
Клуб анонимных друпалеров




      откуда я то знаю?
Клуб анонимных друпалеров
Клуб анонимных друпалеров
Клуб анонимных друпалеров




 Возми проект под контроль!
Непрерывная интеграция


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

     Code        Run
SVN         Bash Manual
GIT         Bash SSH
CVS         VCS Hooks Cron
Mercurial   Capistrano
FTP         Phingistrano
SFTP
Инспекция
Инспекция – Copy - Paste




                 PHPCPD

               pear install phpunit/phpcpd
Инспекция - Mess




  phplint
icosaedro.it/phplint
Инспекция - Mess

 PHPMD
    phpmd.org
______________________________



 Code Size Rules
  Design Rules
  Naming Rules
Unused Code Rules
Инспекция – Code Style


                  Code Sniffer
                  pear install PHP_CodeSniffer



                  Drupal Code
                     Sniffer
                 drupal.org/project/drupalcs
Тестирование
Тестирование
Selenium + Unit testing framework
+ Functional тестирование
- Unit тестирование
+ Поддержка Java Script
- Доступ к API Drupal
- Атомарность тестов
- Хрупкость тестов
- Запуск тестов паралельно
- Производительность тестов
Тестирование
Simpletest/Simpletest clone
+ Functional тестирование
+ Unit тестирование
- Поддержка Java Script
+ Доступ к API Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
Тестирование
Simpletest/Simpletest clone/Selenium
+ Functional тестирование
+ Unit тестирование
+ Поддержка Java Script
+ Доступ к API Drupal
+ Атомарность тестов
+ Хрупкость тестов
+ Запуск тестов паралельно
+ Производительность тестов
Сборка
Сборка
Сборка



   • Contribute
   • Custom
   • Forked
Сборка



   • Contribute
   • Custom
   • Forked Patches
Сборка


           Drush make
projects[admin_menu][version] = "3.0-rc1"
projects[admin_menu][subdir] = "contrib/dev"
projects[admin_menu][patch][] =
  "patches/admin_menu_font.patch"
Непрерывная интеграция


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

• Корпоративные
  репозитории
  модулей
• Хакайте ядро и
  модули
• Возвращайте патчи в
  сообщество
Сборка




  Не храните
Сборка

   Модули     Drush migrate


                Features
  Cущности       Ctools
              default hooks

               Strongarm
  Настройки      Ctools
                Features

                 Uuid
   Контент    Uuid features
                Features
Сборка - phing
                 • $ phing make
                 • $ phing install
                 • $ phing update
                 • $ phing test
                 • $ phing inspect
                 • $ phing create
                 • $ phing phpcs
                 etc ...
Итого


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




Родионову Алексею
              Мироненко Максиму
Тищенко Максиму
           Королькову Александру
Спасибо за внимание

     Вопросы?
          Игорь Родионов

          Drupal expert
          rodionov.ig@gmail.com
Спонсоры
     Организатор      Генеральный спонсор




 Серебряный спонсор   Серебряный спонсор




 Бронзовый спонсор     Бронзовый спонсор

More Related Content

PPT
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
PPT
PHP Tricks
PDF
UWDC 2013, Yii2
PPT
Easy authcache 2 кеширование для pro родионов игорь
PDF
Пластилиновый код: как перестать кодить и начать жить
PDF
UWDC 2013, Как мы используем Yii
PDF
DevConf 2012 - Yii, его разработка и Yii2
PDF
Почему Mojolicious?
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
PHP Tricks
UWDC 2013, Yii2
Easy authcache 2 кеширование для pro родионов игорь
Пластилиновый код: как перестать кодить и начать жить
UWDC 2013, Как мы используем Yii
DevConf 2012 - Yii, его разработка и Yii2
Почему Mojolicious?

What's hot (18)

PPTX
О безопасном использовании PHP wrappers
PPT
Js Http Request дмитрий котеров
ODP
Семинар-практикум по Drupal
PDF
10 - Web-технологии. MVC фреймворки (продолжение)
PDF
Миша Рудрастых: Введение в HTTP API WordPress
PPTX
Реализация шаблонов корпоративных приложений в Magento
PDF
Командная разработка “толстых клиентов”
PDF
Чуть сложнее чем Singleton: аннотации, IOC, АОП
PPT
Профилирование и оптимизация jQuery–кода
PPT
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
PDF
Расширенное кеширование в Doctrine2
PPT
Профилирования и оптимизация jQuery-кода
PDF
Kranonit s16 (python). dmitry furzenko
PPT
Ubercart -nemnogo_primerov_iz_zhizni
PPTX
Ruby - или зачем мне еще один язык программирования?
PPTX
Web осень 2013 лекция 8
PPTX
Web осень 2013 лекция 4
PPT
презентация Day4
О безопасном использовании PHP wrappers
Js Http Request дмитрий котеров
Семинар-практикум по Drupal
10 - Web-технологии. MVC фреймворки (продолжение)
Миша Рудрастых: Введение в HTTP API WordPress
Реализация шаблонов корпоративных приложений в Magento
Командная разработка “толстых клиентов”
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Расширенное кеширование в Doctrine2
Профилирования и оптимизация jQuery-кода
Kranonit s16 (python). dmitry furzenko
Ubercart -nemnogo_primerov_iz_zhizni
Ruby - или зачем мне еще один язык программирования?
Web осень 2013 лекция 8
Web осень 2013 лекция 4
презентация Day4
Ad

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

PPT
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PDF
Непрерывная интеграция - шаг к непрерывному деплойменту
PPT
непрерывная интеграция шаг к непрерывному деплою родионов игорь
PDF
сравнение Drupal и 1с битрикс
PPTX
Создаем Drupal дистрибутив: от идеи до сопровождения.
PPT
Drupal Vs Other
PPT
Drupal и возможности его применения
PPTX
Caching on highload Drupal site - Alexander Shumenko
PPT
Yulia tsuba
PDF
Yaremchuk - Drupal CodeLobster
PPT
Drupal организация разработки
PPT
Drupal -organizaciya_razrabotki
PDF
Easy authcache 2 - кеширование для Pro
PPTX
Hosting for forbes.ru_
PPTX
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
PDF
Creating custom module
PPTX
Chef @DevWeb
PDF
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
PPT
Использование Symfony
PDF
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция - шаг к непрерывному деплойменту
непрерывная интеграция шаг к непрерывному деплою родионов игорь
сравнение Drupal и 1с битрикс
Создаем Drupal дистрибутив: от идеи до сопровождения.
Drupal Vs Other
Drupal и возможности его применения
Caching on highload Drupal site - Alexander Shumenko
Yulia tsuba
Yaremchuk - Drupal CodeLobster
Drupal организация разработки
Drupal -organizaciya_razrabotki
Easy authcache 2 - кеширование для Pro
Hosting for forbes.ru_
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
Creating custom module
Chef @DevWeb
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Использование Symfony
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Ad

More from PVasili (20)

PDF
Как зарабатывать друпал разработчику. Клют Иван
PPT
Business friendly Drupal, Павел Прищепа
PPT
Drupal and the keys to successful communities. Martin Mayer
PPT
инструкция по оптимизации сайтов на Drupal херени даниэл
PPT
фотосток на Drupal+maestro Житарёв Антон
PPT
Drush and drupal. администрирование. Волчек Михаил
PPT
Object oriented css. Graeme Blackwood
PPT
Drupal и мобильные устройства, Комелин Константин
PPT
Практическое использование модуля Panels. Богуцкий Виктор
PPT
Кеширование на высоконагруженном Drupal сайте. Архаров Роман
PPTX
Опыт построения компании-разработчика Интернет проектов на Drupal
PPT
Свой проект на drupal.org от идеи до первого релиза.
PPT
Интеграция Яндекс Сервер
PPTX
Microsoft , Azure и Drupal
PDF
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
PDF
Поисковая оптимизация интернет-магазины на базе Drupal Commerce
PPTX
Инструментарий продвинутого командного разработчика
PPTX
Приём платежей для CMS
PDF
Системы управления взаимоотношениями с клиентами. Drupal CRM.
PPT
Увеличение качества и прибыльности проекта для разработчика.
Как зарабатывать друпал разработчику. Клют Иван
Business friendly Drupal, Павел Прищепа
Drupal and the keys to successful communities. Martin Mayer
инструкция по оптимизации сайтов на Drupal херени даниэл
фотосток на Drupal+maestro Житарёв Антон
Drush and drupal. администрирование. Волчек Михаил
Object oriented css. Graeme Blackwood
Drupal и мобильные устройства, Комелин Константин
Практическое использование модуля Panels. Богуцкий Виктор
Кеширование на высоконагруженном Drupal сайте. Архаров Роман
Опыт построения компании-разработчика Интернет проектов на Drupal
Свой проект на drupal.org от идеи до первого релиза.
Интеграция Яндекс Сервер
Microsoft , Azure и Drupal
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
Поисковая оптимизация интернет-магазины на базе Drupal Commerce
Инструментарий продвинутого командного разработчика
Приём платежей для CMS
Системы управления взаимоотношениями с клиентами. Drupal CRM.
Увеличение качества и прибыльности проекта для разработчика.

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