Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
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

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