
До полноценной книги пока еще как до Луны (и обратно :), но оглавление уже подготовлено и утверждено (в общих деталях). И сразу же большая просьба: если вам кажется, что с ним что-то не так, какие-то темы опущены, какие-то раскрыты слишком подробно, что-то будет вам интересно дополнительно прочитать — напишите об этом в комментариях. Сейчас самое время заложить основы для следующей хорошей книжки.
Итак, оглавление книги «Реактивные веб-сайты. Клиентская оптимизация в алгоритмах и примерах». Здесь сразу указана основная зона авторской ответственности (чтобы потом было ясно, кого за что бить :).
- Введение – Николай Мациевский.
- Благодарности.
- Текущие проекты по клиентской оптимизации.
- Обзор среды. Перспективы.
- Обзор методов клиентской оптимизации – Глеб Кондратенко.
- Анализ клиентской производительности веб-страниц. Заголовки и компоненты страницы. Стадии загрузки страницы. Быстродействие клиентских сценариев.
- Уменьшение размера загружаемых объектов. Сжатие текстовых файлов. Оптимизация изображений.
- Уменьшение числа загружаемых объектов. Объединение текстовых файлов. Объединение изображений. Настройка кэширования.
- Оптимизация структуры веб-страниц. Особенности верстки. Исключение встроенного кода. Расположение стилей и сценариев. Предзагрузка и пост-загрузка. Распределенное хранение файлов (CDN). Исключение избыточных HTTP-запросов.
- Алгоритмизация сжатия текстовых файлов – Евгений Степанищев.
- Потоковые алгоритмы сжатия в браузерах (gzip, bzip2, bzip, deflate, compress, identity), сравнение: несжатый, gzip, deflate, bzip2, compress. Альтернативные браузерные методы сжатия: delta, Google Chrome. Bzip2: Chrome, w3m, OmniWeb.
- Поддержка методов в браузерах (+ ошибки реализации).
- Автоматизация: поддержка веб-серверами, сжатие на лету (настройка Apache1, 2, nginx, лайти, c комментариями) и статика (настройка Apache1, 2, nginx, лайти). Расход памяти, нагрузка на процессор. Лайти держит bzip2!
- Сжатие скриптом. Распознавание что умеет браузер (TE, «x-методы», вес), выставление заголовков: Vary, Content-encoding, Content-length.
- Другие методы: сжатие Canvas, архиваторы на JS (алгоритм работы packer, например).
- Алгоритмы уменьшения изображений – Евгений Степанищев.
- Распространённые форматы изображений: SVG, JPEG, GIF, PNG (вкратце, какой формат для чего используется). JPEG — полноцветные с потерей, PNG — полноцветные без потрерь, альфа, GIF — анимация, мелкие картинки (кратко о MNG и APNG), SVG — вектор (рассказать, что в IE без плагина пахать не будет, там VML, рассказать, что SVG появился из VML, затронуть поддержку мобильных браузеров, см. Википедию), ICO (если только как ссылка на первую книгу), XBM?
- Подготовка JPEG. Программы постоптимизации (PureJPG, jpegtran).
- Подготовка PNG. Программы постоптимизации (PMT, OptiPNG, PNGout, TweakPNG).
- Подготовка GIF. Программы постоптимизации (GIFLite, SuperGIF, gifsicle).
- Подготовка SVG. Сжатие SVG: gzip, deflate (SVGZ).
- Уменьшение числа загружаемых объектов – Мациевский Николай.
- Автоматическое объединение текстовых файлов.
- Алгоритм разбора и сбора CSS Sprites (sprites.in) и data:URI (duris.ru).
- Кэширование на клиентском и серверном уровне (основы, сброс кэша и немного прикладных решений для серверного кэширования).
- Оптимизация структуры веб-страниц – Мациевский Николай.
- Организация «отложенной» загрузки JavaScript при текущей структуре скриптов и библиотек. Теоретические подходы и практические решения.
- Практическое использование CDN на примере Amazon, Google и NGENIX.
- Перспективы «быстрого» JavaScript — от одних стандартов к другим. Браузеры против оптимизаторов?
- Технологии будущего.
- CSS3 (YASS) – Мациевский Николай.
- Canvas / UI / Flex (?) — Мациевский Николай.
- Клиентские хранилища. Обзор и виды хранилищ. Что можно хранить и что это даёт. – Евгений Степанищев.
- Конкретные примеры на базе одной из библиотек (PersistJS) – Евгений Степанищев
- Автоматизация клиентской оптимизации – Мациевский Николай.
- Обзор технологий и решений на рынке (PHP Speedy, Minify, Smart Optimizer, Web Optimizer, getRPO).
- Руководство по установке и настройке Web Optimizer.
- Алгоритмы работы, основанные на веб-стандартах.
- Оценка эффективности (серверная нагрузка – клиентская производительность). Практические результаты.
- Приложение. Практические примеры – Мациевский Николай.
- Оптимизация ASP.NET.
- Оптимизация Drupal.
- Оптимизация Wordpress.
- Оптимизация Joomla!.
- Заключение – Мациевский Николай.
- В качестве послесловия.
Планируется, что в книге будут полноценные «живые» иллюстрации (наверное, немного отвлекающей направленности, чтобы «сгладить» серьезность предлагаемых решений :) и что она выйдет в электронном виде в сентябре, а в бумажном — уже в начале следующего года (в январе-феврале).
В общем, любые комментарии приветствуются. Напоминаю, что все материалы первой книги выложена на сайте, полностью ей посвященном.