SlideShare a Scribd company logo
1 of 44
Web Performance и не только
Почему я об этом рассказываю?
• Я тот парень, что ускорил штук 10 сайтов.
• Я тот парень, что любит их ускорять.
• Я тот парень, что любит рассказывать истории.
О чем не расскажу
• О супер новинках. Не успеваешь изучать, а они уже
устаревают
• О распределенных системах.
• О бэкенде (но чуть-чуть расскажу)
Тестовый проект: входные данные
• Время загрузки страницы 8.3s
• YSlow 64%
• PageSpeed 85%
• Google Desktop 69
• Google Mobile 60
Тестовый проект: результат
Тестовый проект: результат
Пора! Импортозамещение!
Успех
Смешное
• Дональд Трамп, из стран первого мира который нанимает
людей из Пакистана
• ПакистанГуру был здесь
• Нюансы, если интересно
Зачем ускорять?
•Быстрей работает. Удобно.
•Что-то там про британских ученых, которые
посчитали что ежели сайт открывается дольше
3 секунд, то всё плохо.
•Гугл официально признал что скорость
открытия сайта это фактор ранжирования в
поиске. Чем ниже тем выше.
•Это приятно.
Основа
• Меньше запросов
• Быстрее ответ сервера
• Меньше доменов
• Жми картинки
CDN
•Что это? Зачем?
•Какие есть?
•Cloudflare
•KeyCDN
•Какие есть аналоги в России?
•Мегафон
•Айри
Cloudflare
+Бесплатная базовая версия
+Сертификат SSL нахаляву
+DDOS защита
+Работа с выключенным сайтом
‐ Блокировка в рос реестре по IP адресу
‐ Заграница. Потеря в каждом запросе 10мс. 100 реквестов ~ 1
секунда. Но за счет отдачи статики количество запросов
уменьшается.
Меньше запросов
• CSS
• JS
• Sprite / Inline‐картинки
• Шрифты
• Сервер
CSS
• Объединяем CSS
• Минифицируем
• Убиваем все @import
• Все эти гугл шрифты в топку
• https://github.com/typekit/webfontloader async font loader
• Шрифты в base62‐encoded
• Меньше, еще меньше запросов
• Минифицированный CSS после первого экрана. Киллер фича.
• Придется залезть в бэкенд, поцаны.
• https://developers.google.com/web/fundamentals/performance/critical‐rendering‐
path/page‐speed‐rules‐and‐recommendations
JS
• Объединяем
• Минифицируем
• Не блокируем
• Async
• Вниз страницы
• http://www.feedthebot.com/pagespeed/defer‐loading‐javascript.html
• Сам не знаю, но молва идет:
• requirejs
JS
Как минифицировать и
комбинировать?
• Руками
• Сборщиками
• Средствами CMS/плагинами/своим кодом
• Через CDN
Картинки
• Абсолютное зло
• Меньше лучше, жмем, удаляем альфа‐каналы в PNG
• Гугл по умолчанию предлагает плоху версию сжатых картинок
• http://scottjehl.github.io/picturefill/
• Не генерьте их на лету (‐:
Не используйте CDN для популярных
библиотек
• Используйте голову
• Это самый частый совет
• В результате я видел 15 CDN у одного чудака
• Jquerry
• Bootstrap
• Font‐awesome
• Google‐fonts
• Etc
Все они с SSL то есть дополнительно жмут руки.
Все они требуют Resolve процедуры. Не надо так.
CDN/поддомен для статики
• Зачем?
• Параллельные запросы. HTTP/1.1 на браузеры накладываются
ограничения на количество одновременно загружаемых компонентов
сайта. Не более 2‐х компонентов с одного хоста
• Как проще всего?
• Символическая ссылка
• Особенности
• Куки‐фри
Что хорошо для DOM
• Не сжимайте картинки через CSS
• Указывайте width и height картинок
• AJAX для всякой фигни
• Меньше элементов (пример про лошадок)
• Шутки от word
• <a></a><span></span> Привет wysiwyg
Предупредительный выстрел
Prefetch, Preconnect
Настройка сервера
• У нас же про фронтенд 
• Включите GZIP
• Включите кэширование браузером
Придется покопаться в apache .htaccess или конфигах nginx. Ну или
где вы там копаетесь на IIS.
Средства диагностики
• https://gtmetrix.com/
• https://developers.google.com/speed/pagespeed/insights/
• Консоль хрома/лисы/ie (лал)
• Не доверяйте этим пацанам безоговорочно
• Пример с джери-китчен (css в шапке)
• Пример с картинками от гугла
• Пример с AJAX.
Chrome debugger
Сразу видны проблемы. Удобно
HTTP/2
• Combine, minify, sprite, domain sharding. Офигенно.
• Обязательно SSL. Сервисы типа https://letsencrypt.org/
• Все нормальные CDN поддерживают.
• 71% браузеров. Привет IE.
HTTP/2 — пример внедрения
HTTP/2
• https://httpd.apache.org/docs/2.4/mod/mod_http2.html
• https://www.nginx.com/blog/nginx-1-9-5/
• http://blogs.iis.net/davidso/http2
• https://www.smashingmagazine.com/2016/02/getting-ready-for-
http2/
Новая фигня
• BPG
• http://eek.stfi.re/why-bpg-will-replace-gifs-and-not-only
• Webpack
• http://blog.tighten.co/unpacking-webpack
AJAX штуки. Еще раз.
• Пример про яблоки.
• Пример про проект на AJAX.
Почти закончил
• Velocity Conference
• https://www.smashingmagazine.com/tag/performance/
• Гугл
• Гугл. Результаты поиска.
Перфоманс но не веб
• Почему я?
• У меня недавно это спросили, и я очень долго отвечал.
• Это некий лингвистический трюк.
Задайте себе 1 вопрос:
Что будет если моя компания закроется?
Блог
• О чем?
• Когда?
• Зачем?
• Это всё очевидно.
• Я не хочу быть кэпом.
• Это то что останется после меня.
• Пример хантинга и блога.
• Пример халтуры и блога.
• Пример необычной халтуры и блога.
Контент не король
Но контент тоже важен
• О чем писать?
• О работе
• Об опыте
• О странных задачах, которые были решены
• Нужен режим «думания» определенный. Когда ты повсюду
видишь темы для блога.
• Только натренировать. Повсюду примеры плохого сервиса. Плохих
интерфейсов.
• Странные историй. Странный маркетинг. Странная жизнь.
Что делать дальше?
• Что мотивирует вести блог?
Нюансы
• Что демотивирует?
• Универсальные ответы.
• Регулярность.
• От чего то придется отказаться. Расставашки всегда грустняшки.
• Пишите человеческим языком.
• Представьте что вы это рассказываете своему дружку
программисту.
• Если пишите сложное, то представьте вместо дружка маму.
• Думайте как программист/дизайнер. Делайте тексты
спроектированными. Тестируйте.
Как научиться писать как господь?
• Просто писать. Это как с кодом.
• Совет Ганди:
• Сначала они тебя не замечают;
• Потом смеются над тобой, затем; 
• …
• Затем они продолжают смеяться над тобой
• …
• Смеются суки.
• …
• Вы продаете ссылки с блога на сапе по 100 рублей за шткуку.
Success!
Что дало мне?
• Куча экспертизы в разных делах.
• Нет лучше учебы, чем попытка описать свой опыт.
• Заказы. Притом самые жирные всегда через блог. Аналитика и
калтрекинг рулит.
• Странные заказы.
• Деньги.
• Слава.
• Женщины.
• Два выступления на рязанском митапе (!)
• Оплата моего труда как синьёра-помидора, хотя я джуниор
• Я больше не джуниор (на самом деле нет)
• Я стал коучом (коучером?).
Кроме блога?
• Комьюнити.
• Чтобы стать Буддой надо делать вид что ты Будда.
• Мой пример с этим митапом.
• Что будет потом.
• Выступления.
• Срач.
• Пример моих срач проектов.
• Пример результатов.
Теперь всё
•Давайте пойдем на афтепати уже!

More Related Content

What's hot

Петренко Дмитрий - Автоматизация создания сеток Web 2.0
Петренко Дмитрий - Автоматизация создания сеток Web 2.0Петренко Дмитрий - Автоматизация создания сеток Web 2.0
Петренко Дмитрий - Автоматизация создания сеток Web 2.0Дмитрий Петренко
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Pavel Chertorogov
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENBAleksandr Boichenko
 
Обучение фронтенд разработке
Обучение фронтенд разработкеОбучение фронтенд разработке
Обучение фронтенд разработкеITCrowd Almaty
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
 
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компанийАлександр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компанийYandex
 
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014Dmytro Zharii
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...IT-Portfolio
 
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplantit-people
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновAnton Piskunov
 
UWDC'12, Александр Макаров, О командной разработке и фреймворках
UWDC'12, Александр Макаров, О командной разработке и фреймворкахUWDC'12, Александр Макаров, О командной разработке и фреймворках
UWDC'12, Александр Макаров, О командной разработке и фреймворкахAlexander Makarov
 
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхКурс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхautomated-testing.info
 
Paul Miller "Как подняться на open source"
Paul Miller "Как подняться на open source"Paul Miller "Как подняться на open source"
Paul Miller "Как подняться на open source"Fwdays
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Yandex
 
Тестирование производительности клиентсайда
Тестирование производительности клиентсайдаТестирование производительности клиентсайда
Тестирование производительности клиентсайдаSQALab
 
10 самых тупых вопросов клиента
10 самых тупых вопросов клиента10 самых тупых вопросов клиента
10 самых тупых вопросов клиентаmastervox
 

What's hot (20)

Chef @DevWeb
Chef @DevWebChef @DevWeb
Chef @DevWeb
 
Петренко Дмитрий - Автоматизация создания сеток Web 2.0
Петренко Дмитрий - Автоматизация создания сеток Web 2.0Петренко Дмитрий - Автоматизация создания сеток Web 2.0
Петренко Дмитрий - Автоматизация создания сеток Web 2.0
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENB
 
Обучение фронтенд разработке
Обучение фронтенд разработкеОбучение фронтенд разработке
Обучение фронтенд разработке
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
Project
ProjectProject
Project
 
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компанийАлександр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
 
Joker2014
Joker2014Joker2014
Joker2014
 
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
 
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
 
Защита
ЗащитаЗащита
Защита
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
UWDC'12, Александр Макаров, О командной разработке и фреймворках
UWDC'12, Александр Макаров, О командной разработке и фреймворкахUWDC'12, Александр Макаров, О командной разработке и фреймворках
UWDC'12, Александр Макаров, О командной разработке и фреймворках
 
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхКурс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
 
Paul Miller "Как подняться на open source"
Paul Miller "Как подняться на open source"Paul Miller "Как подняться на open source"
Paul Miller "Как подняться на open source"
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 
Тестирование производительности клиентсайда
Тестирование производительности клиентсайдаТестирование производительности клиентсайда
Тестирование производительности клиентсайда
 
10 самых тупых вопросов клиента
10 самых тупых вопросов клиента10 самых тупых вопросов клиента
10 самых тупых вопросов клиента
 

Viewers also liked

Arquitetura Pedagógica
Arquitetura PedagógicaArquitetura Pedagógica
Arquitetura PedagógicaPaulo Medeiros
 
Default-Forecasting Project
Default-Forecasting ProjectDefault-Forecasting Project
Default-Forecasting ProjectJoey Nichols
 
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!Iván López Martín
 
Configuration for Java EE and the Cloud
Configuration for Java EE and the CloudConfiguration for Java EE and the Cloud
Configuration for Java EE and the CloudDmitry Kornilov
 
Imperialismo (1870-1914)
Imperialismo (1870-1914)Imperialismo (1870-1914)
Imperialismo (1870-1914)araujombarbara
 
ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会Yuya Rin
 
Innovation, Autonomy and Accountability
Innovation, Autonomy and AccountabilityInnovation, Autonomy and Accountability
Innovation, Autonomy and AccountabilityKevin Goldsmith
 
Cloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMSCloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMSMorgan Simonsen
 
JOSUG Meetup 28th Heat 101
JOSUG Meetup 28th Heat 101JOSUG Meetup 28th Heat 101
JOSUG Meetup 28th Heat 101irix_jp
 
Organization and Architecture
Organization and ArchitectureOrganization and Architecture
Organization and ArchitectureKevin Goldsmith
 
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...Morgan Simonsen
 
OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)Jimi Chen
 
финансовый рынок 01.10.2015
финансовый рынок 01.10.2015финансовый рынок 01.10.2015
финансовый рынок 01.10.2015Anastasia Vinogradova
 
финансовый рынок 01_04_2016
финансовый рынок 01_04_2016финансовый рынок 01_04_2016
финансовый рынок 01_04_2016Anastasia Vinogradova
 
новый порядок расчета налога на имущество 21 11-2016г
новый порядок расчета налога на имущество 21 11-2016гновый порядок расчета налога на имущество 21 11-2016г
новый порядок расчета налога на имущество 21 11-2016гAnastasia Vinogradova
 
AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application Carlo Bonamico
 
Libro de Seguridad en Redes
Libro de Seguridad en RedesLibro de Seguridad en Redes
Libro de Seguridad en RedesTelefónica
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiTelefónica
 

Viewers also liked (20)

Arquitetura Pedagógica
Arquitetura PedagógicaArquitetura Pedagógica
Arquitetura Pedagógica
 
Default-Forecasting Project
Default-Forecasting ProjectDefault-Forecasting Project
Default-Forecasting Project
 
Государственная поддержка НКО в городе Москве
Государственная поддержка НКО в городе МосквеГосударственная поддержка НКО в городе Москве
Государственная поддержка НКО в городе Москве
 
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!
 
Configuration for Java EE and the Cloud
Configuration for Java EE and the CloudConfiguration for Java EE and the Cloud
Configuration for Java EE and the Cloud
 
Imperialismo (1870-1914)
Imperialismo (1870-1914)Imperialismo (1870-1914)
Imperialismo (1870-1914)
 
2nd VRU RAC Meeting: Strategic Directions and Governance
2nd VRU RAC Meeting: Strategic Directions and Governance2nd VRU RAC Meeting: Strategic Directions and Governance
2nd VRU RAC Meeting: Strategic Directions and Governance
 
ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会
 
Innovation, Autonomy and Accountability
Innovation, Autonomy and AccountabilityInnovation, Autonomy and Accountability
Innovation, Autonomy and Accountability
 
Cloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMSCloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMS
 
JOSUG Meetup 28th Heat 101
JOSUG Meetup 28th Heat 101JOSUG Meetup 28th Heat 101
JOSUG Meetup 28th Heat 101
 
Organization and Architecture
Organization and ArchitectureOrganization and Architecture
Organization and Architecture
 
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
 
OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)
 
финансовый рынок 01.10.2015
финансовый рынок 01.10.2015финансовый рынок 01.10.2015
финансовый рынок 01.10.2015
 
финансовый рынок 01_04_2016
финансовый рынок 01_04_2016финансовый рынок 01_04_2016
финансовый рынок 01_04_2016
 
новый порядок расчета налога на имущество 21 11-2016г
новый порядок расчета налога на имущество 21 11-2016гновый порядок расчета налога на имущество 21 11-2016г
новый порядок расчета налога на имущество 21 11-2016г
 
AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application
 
Libro de Seguridad en Redes
Libro de Seguridad en RedesLibro de Seguridad en Redes
Libro de Seguridad en Redes
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
 

Similar to WepPerfomance,

Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьSQALab
 
Юрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услугаЮрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услугаSQADays_2009_Piter
 
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)Ontico
 
Creating Open Source Projects
Creating Open Source ProjectsCreating Open Source Projects
Creating Open Source ProjectsAlexei Yuzhakov
 
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Ontico
 
Product discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехиProduct discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехиNikita Efimov
 
От 40 до 2 секунд
От 40 до 2 секундОт 40 до 2 секунд
От 40 до 2 секундoelifantiev
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Ontico
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016Roman Ivliev
 
Javaone 2013 moscow gradle
Javaone 2013 moscow gradleJavaone 2013 moscow gradle
Javaone 2013 moscow gradleEvgeny Borisov
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskAlex Chistyakov
 
Как завести трактор
Как завести тракторКак завести трактор
Как завести трактор0leGG
 
7 лютых ошибок в англоязычном линкбилдинге
7 лютых ошибок в англоязычном линкбилдинге7 лютых ошибок в англоязычном линкбилдинге
7 лютых ошибок в англоязычном линкбилдингеNaZapad
 
Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи...
 Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи... Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи...
Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи...borovoystudio
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Andrew Mayorov
 
денис танаев (Mail.ru) втаскиваем культуру a-b тестов в организацию
денис танаев (Mail.ru)   втаскиваем культуру a-b тестов в организациюденис танаев (Mail.ru)   втаскиваем культуру a-b тестов в организацию
денис танаев (Mail.ru) втаскиваем культуру a-b тестов в организациюPCampRussia
 
Как управлять командами в IT?
Как управлять командами в IT?Как управлять командами в IT?
Как управлять командами в IT?iQSpace
 
Почему почта не работает
Почему почта не работаетПочему почта не работает
Почему почта не работаетRina Uzhevko
 

Similar to WepPerfomance, (20)

JBatch
JBatchJBatch
JBatch
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 
Юрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услугаЮрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услуга
 
10errors seo
10errors seo10errors seo
10errors seo
 
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
 
Creating Open Source Projects
Creating Open Source ProjectsCreating Open Source Projects
Creating Open Source Projects
 
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)Гибкое прототипирование для гибкой разработки (Максим Гапонов)
Гибкое прототипирование для гибкой разработки (Максим Гапонов)
 
Product discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехиProduct discovery. Наши шишки и успехи
Product discovery. Наши шишки и успехи
 
От 40 до 2 секунд
От 40 до 2 секундОт 40 до 2 секунд
От 40 до 2 секунд
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016
 
Javaone 2013 moscow gradle
Javaone 2013 moscow gradleJavaone 2013 moscow gradle
Javaone 2013 moscow gradle
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
 
Как завести трактор
Как завести тракторКак завести трактор
Как завести трактор
 
7 лютых ошибок в англоязычном линкбилдинге
7 лютых ошибок в англоязычном линкбилдинге7 лютых ошибок в англоязычном линкбилдинге
7 лютых ошибок в англоязычном линкбилдинге
 
Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи...
 Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи... Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи...
Как сделать интернет-магазин быстро и недорого: эффективное решение от Студи...
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.
 
денис танаев (Mail.ru) втаскиваем культуру a-b тестов в организацию
денис танаев (Mail.ru)   втаскиваем культуру a-b тестов в организациюденис танаев (Mail.ru)   втаскиваем культуру a-b тестов в организацию
денис танаев (Mail.ru) втаскиваем культуру a-b тестов в организацию
 
Как управлять командами в IT?
Как управлять командами в IT?Как управлять командами в IT?
Как управлять командами в IT?
 
Почему почта не работает
Почему почта не работаетПочему почта не работает
Почему почта не работает
 

WepPerfomance,

  • 1. Web Performance и не только
  • 2. Почему я об этом рассказываю? • Я тот парень, что ускорил штук 10 сайтов. • Я тот парень, что любит их ускорять. • Я тот парень, что любит рассказывать истории.
  • 3. О чем не расскажу • О супер новинках. Не успеваешь изучать, а они уже устаревают • О распределенных системах. • О бэкенде (но чуть-чуть расскажу)
  • 4. Тестовый проект: входные данные • Время загрузки страницы 8.3s • YSlow 64% • PageSpeed 85% • Google Desktop 69 • Google Mobile 60
  • 9. Смешное • Дональд Трамп, из стран первого мира который нанимает людей из Пакистана • ПакистанГуру был здесь • Нюансы, если интересно
  • 10. Зачем ускорять? •Быстрей работает. Удобно. •Что-то там про британских ученых, которые посчитали что ежели сайт открывается дольше 3 секунд, то всё плохо. •Гугл официально признал что скорость открытия сайта это фактор ранжирования в поиске. Чем ниже тем выше. •Это приятно.
  • 11. Основа • Меньше запросов • Быстрее ответ сервера • Меньше доменов • Жми картинки
  • 12. CDN •Что это? Зачем? •Какие есть? •Cloudflare •KeyCDN •Какие есть аналоги в России? •Мегафон •Айри
  • 13. Cloudflare +Бесплатная базовая версия +Сертификат SSL нахаляву +DDOS защита +Работа с выключенным сайтом ‐ Блокировка в рос реестре по IP адресу ‐ Заграница. Потеря в каждом запросе 10мс. 100 реквестов ~ 1 секунда. Но за счет отдачи статики количество запросов уменьшается.
  • 14. Меньше запросов • CSS • JS • Sprite / Inline‐картинки • Шрифты • Сервер
  • 15. CSS • Объединяем CSS • Минифицируем • Убиваем все @import • Все эти гугл шрифты в топку • https://github.com/typekit/webfontloader async font loader • Шрифты в base62‐encoded • Меньше, еще меньше запросов • Минифицированный CSS после первого экрана. Киллер фича. • Придется залезть в бэкенд, поцаны. • https://developers.google.com/web/fundamentals/performance/critical‐rendering‐ path/page‐speed‐rules‐and‐recommendations
  • 16. JS • Объединяем • Минифицируем • Не блокируем • Async • Вниз страницы • http://www.feedthebot.com/pagespeed/defer‐loading‐javascript.html • Сам не знаю, но молва идет: • requirejs
  • 17. JS
  • 18. Как минифицировать и комбинировать? • Руками • Сборщиками • Средствами CMS/плагинами/своим кодом • Через CDN
  • 19. Картинки • Абсолютное зло • Меньше лучше, жмем, удаляем альфа‐каналы в PNG • Гугл по умолчанию предлагает плоху версию сжатых картинок • http://scottjehl.github.io/picturefill/ • Не генерьте их на лету (‐:
  • 20. Не используйте CDN для популярных библиотек • Используйте голову • Это самый частый совет • В результате я видел 15 CDN у одного чудака • Jquerry • Bootstrap • Font‐awesome • Google‐fonts • Etc Все они с SSL то есть дополнительно жмут руки. Все они требуют Resolve процедуры. Не надо так.
  • 21. CDN/поддомен для статики • Зачем? • Параллельные запросы. HTTP/1.1 на браузеры накладываются ограничения на количество одновременно загружаемых компонентов сайта. Не более 2‐х компонентов с одного хоста • Как проще всего? • Символическая ссылка • Особенности • Куки‐фри
  • 22. Что хорошо для DOM • Не сжимайте картинки через CSS • Указывайте width и height картинок • AJAX для всякой фигни • Меньше элементов (пример про лошадок) • Шутки от word • <a></a><span></span> Привет wysiwyg
  • 24. Настройка сервера • У нас же про фронтенд  • Включите GZIP • Включите кэширование браузером Придется покопаться в apache .htaccess или конфигах nginx. Ну или где вы там копаетесь на IIS.
  • 25. Средства диагностики • https://gtmetrix.com/ • https://developers.google.com/speed/pagespeed/insights/ • Консоль хрома/лисы/ie (лал) • Не доверяйте этим пацанам безоговорочно • Пример с джери-китчен (css в шапке) • Пример с картинками от гугла • Пример с AJAX.
  • 28. HTTP/2 • Combine, minify, sprite, domain sharding. Офигенно. • Обязательно SSL. Сервисы типа https://letsencrypt.org/ • Все нормальные CDN поддерживают. • 71% браузеров. Привет IE.
  • 29. HTTP/2 — пример внедрения
  • 30. HTTP/2 • https://httpd.apache.org/docs/2.4/mod/mod_http2.html • https://www.nginx.com/blog/nginx-1-9-5/ • http://blogs.iis.net/davidso/http2 • https://www.smashingmagazine.com/2016/02/getting-ready-for- http2/
  • 31. Новая фигня • BPG • http://eek.stfi.re/why-bpg-will-replace-gifs-and-not-only • Webpack • http://blog.tighten.co/unpacking-webpack
  • 32. AJAX штуки. Еще раз. • Пример про яблоки. • Пример про проект на AJAX.
  • 33. Почти закончил • Velocity Conference • https://www.smashingmagazine.com/tag/performance/ • Гугл • Гугл. Результаты поиска.
  • 34. Перфоманс но не веб • Почему я? • У меня недавно это спросили, и я очень долго отвечал. • Это некий лингвистический трюк.
  • 35. Задайте себе 1 вопрос: Что будет если моя компания закроется?
  • 36. Блог • О чем? • Когда? • Зачем? • Это всё очевидно. • Я не хочу быть кэпом. • Это то что останется после меня. • Пример хантинга и блога. • Пример халтуры и блога. • Пример необычной халтуры и блога.
  • 38. Но контент тоже важен • О чем писать? • О работе • Об опыте • О странных задачах, которые были решены • Нужен режим «думания» определенный. Когда ты повсюду видишь темы для блога. • Только натренировать. Повсюду примеры плохого сервиса. Плохих интерфейсов. • Странные историй. Странный маркетинг. Странная жизнь.
  • 39. Что делать дальше? • Что мотивирует вести блог?
  • 40. Нюансы • Что демотивирует? • Универсальные ответы. • Регулярность. • От чего то придется отказаться. Расставашки всегда грустняшки. • Пишите человеческим языком. • Представьте что вы это рассказываете своему дружку программисту. • Если пишите сложное, то представьте вместо дружка маму. • Думайте как программист/дизайнер. Делайте тексты спроектированными. Тестируйте.
  • 41. Как научиться писать как господь? • Просто писать. Это как с кодом. • Совет Ганди: • Сначала они тебя не замечают; • Потом смеются над тобой, затем;  • … • Затем они продолжают смеяться над тобой • … • Смеются суки. • … • Вы продаете ссылки с блога на сапе по 100 рублей за шткуку. Success!
  • 42. Что дало мне? • Куча экспертизы в разных делах. • Нет лучше учебы, чем попытка описать свой опыт. • Заказы. Притом самые жирные всегда через блог. Аналитика и калтрекинг рулит. • Странные заказы. • Деньги. • Слава. • Женщины. • Два выступления на рязанском митапе (!) • Оплата моего труда как синьёра-помидора, хотя я джуниор • Я больше не джуниор (на самом деле нет) • Я стал коучом (коучером?).
  • 43. Кроме блога? • Комьюнити. • Чтобы стать Буддой надо делать вид что ты Будда. • Мой пример с этим митапом. • Что будет потом. • Выступления. • Срач. • Пример моих срач проектов. • Пример результатов.
  • 44. Теперь всё •Давайте пойдем на афтепати уже!