• 25 февраля, понедельник
  • Кемерово, Бакинский, 15

Курс «Основы оптимизации веб-сайтов» от айтишников Good Line

22 дня назад
с 18:00 25 февраля по 18:00 21 марта
Кемерово
Бакинский, 15

Подойди системно к оптимизации своих проектов!

На курсе разберём самые часто встречающиеся решения, которые могут негативно влиять на производительность веб-сайтов. Сделаем общий обзор подходов к оптимизации, а также разберём примеры неоптимального кода реальных проектов. На практике сделаем оптимизации тестовых примеров.

Преподаватель-практик:  ведущий разработчик web-отдела Good Line — Евгений Попов.

Требования
Начальная квалификация веб-разработчика (будем активно работать с исходным кодом и разбирать технические детали).


Программа:
9 занятий. 14 часов практического материала. 2 раза в неделю, по понедельникам и четвергам.

1. Проблема производительности и цели оптимизации

 - Границы курса 
 - Зачем оптимизировать? Субъективное и объективное.
 - Решение через понимание: бенчмаркинг и профилирование.
 - Некоторые инструменты бенчмаркинга и профилирования.

2. Архитектура веб-приложения

 - Веб-стэк. Путь веб-странички.
 - Проблемы производительности: фронт, сеть, приложение бэка, диск, база, снова сеть.
 - Монолит, сервис, SPA.
 - Бенчмаркинг как часть тестирования и профилирование как часть эксплуатации. +

3. Базы данных

 - Подходы и инструменты бенчмаркинга, профилирования и мониторинга.
 - Объясняя EXPLAIN.
 - Индексы в БД, понимание, отладка.
 - GROUP BY и ORDER BY.
 - COUNT() на каждой странице
 - Пагинаторы
 - Поиск через LIKE
 - INSERT/UPDATE в цикле (AUTOCOMMIT)
 - UPDATE и SQL-cache

4. Обработка данных

 - Вычитывание полотнищ данных в память
 - Набор буфера конкатенацией
 - Импорт больших объёмов данных
 - Перехлёст cron-задач
 - Снятие и поднятие дампа
 - MySQL: фрагментация таблиц
 - Синхронная статистика

5. Сеть и передача данных

 - Ненужные сетевые запросы
 - Синхронные сетевые запросы
 - Синхронная отпавка почты, другие блокирующие синхронные задачи.
 - DNS
 - Асинхронность в разных ЯП. Знай свой ЯП.

6. Приложение

 - time limit и memory limit. Каскадное обрушение.
 - CMS и SQL DESCRIBE
 - PHP: header location + die. CMS redirect. Тяжелые "Хвосты".
 - PHP: выдача файлов
 - Сессии: на диске, в базе, в key-value хранилище, на клиенте.
 - Сессии: время жизни, регенерация. Сессия vs авторизация. Сессии для всех?
 - Дорогая проверка прав. Дорогая 404.
 - Админка — часть сайта?
 - REST и состояния.
 - Масштабирование.
 - Кэширование.
 - Мониторинг и логирование.

7. Статический контент

 - Ширина канала: gzip, cache-control, cdn, dns-precache, keep-alive, http2
 - Минификация, тайлы, svg.
 - optipng, jpegoptimize и т.п.
 - Другая сторона: Блокировка отображения в браузере.
 - Другая сторона: CPU пользователя (svg, js, css)
 - Метрики PageSpeed Insights vs ощущения пользователя
 - Хранилища картинок. Метаданные картинок. Размеры в теге IMG
 - Видео, другие файлы. Папочка uploads.

8. Фронтэнд

9. Файловая система

 - Диски, RAID
 - Профилирование
 - Особенности некоторых ФС
 - ФС и ОС
 - Битва за место

 

Первый поток курса учится с 25 февраля. Присоединиться к нему можно до 28 февраля, когда будет следующий набор — пока неизвестно.

Регистрация

Рекомендуемые события

Организуете события? Обратите внимание на TimePad!

Профессиональная билетная система, статистика продаж 24/7, выгрузка списков участников, встроенные инструменты продвижения, личный кабинет для самостоятельного управления и еще много чего интересного.

Узнать больше