Быстрые веб-приложения: разработка, профайлинг, оптимизация

Описание

В последние годы веб-технологии стали своего рода серебряной пулей для UI и кроссплатформенной разработки, однако отношение к данному вопросу по-прежнему не однозначно.
Одной из основных проблем, с которыми сталкиваются разработчики при создании веб-приложений - производительность в сравнении с native приложениями. Много "know how" необходимы для того, чтобы создать HTML / JS приложение, которое будет таким же быстрым, как и IOS или Android Native. 

Мастер-класс ознакомит вас с серией техник, позволяющих разрабатывать максимально быстрые веб-приложения, поднять отзывчивость интерфейса и сделать ваших юзеров счастливее. 

 

План мастер-класса:

  1. Введение.
  2. Загрузка страницы:
    • Критерии успеха, методики измерения
    • Становимся инженерами: как передаются данные?
    • Уменьшаем количество файлов
    • Уменьшаем сетевой трафик
    • Оптимизируем порядок загрузки
    • Возвращение серверного рендеринга
  3. Скорость исполнения JavaScript:
    • Почему это важно?
    • Критерии успеха, методики измерения
    • Как работают JS движки?
    • Используем теорию для оптимизации
    • Оптимизируем работу с данными
    • Оптимизируем функции
    • Кеширование, меморизация
    • Что нужно знать о jQuery?
    • Работаем с DOM
    • Делегация событий
    • Профайлинг JavaScript: вкладка Profile
    • Профайлинг JavaSctipt: Flame Chart
  4. Работа с памятью в JavaScript. Garbage Collector:
    • Жизненный цикл памяти
    • Хороший тон при использования памяти
    • Профайлинг памяти
    • Техника трех снимков
    • Статическое выделение памяти
  5. Скорость рендеринга и анимации:
    • Основной поток выполнения в браузере
      • Reflow/Layout
    • Hardware/Software рендеринг
    • Советы по высокопроизводительной анимации
    • Paint
    • Профайлинг рендеринга
  6. Альтернативные методы рендеринга контента:
    • SVG
    • Canvas
    • WebGL
  7. Человеческое восприятие и UI трюки:
    • Несколько фактов о человеческом восприятии
    • Критерии успешного приложения с точки зрения конечного пользователя
    • Задержки во взаимодействии на мобильных устройствах
    • Проблемы проектирования UI на мобильных устройствах
    • Трюк: делаем быстрые бесконечные списки (Lightweight + Object Pool)

Быстрые веб-приложения: разработка, профайлинг, оптимизация