SlideShare uma empresa Scribd logo
1 de 66
Прогрессивный
рендеринг, Catberry.js
Реенко Михаил
Javascript Developer at Flamp (2GIS)
Catberry Core Team Member
Flamp
• 6 лет развития
• 25 000 000 просмотров в месяц
• 280 000 000 запросов к API в месяц
Сайт должен быть
1. Удобным
2. Быстрым
Сайт должен быть
1. Удобным ➜ к дизайнерам
2. Быстрым ➜ к разработчикам
Что такое быстрый сайт?
Что такое скорость загрузки страницы?
Скорость страницы – это показатель того,
насколько быстро загружается контент
Скорость страницы – это восприятие, это то,
что испытывает пользователь
«Классическая» загрузка страницы
(req, res, next) => {
const urlParts = url.parse(req.url, true);
getData(urlParts.query.id)
.then(data => template.render(data))
.then(html => res.end(html));
}
Сделаем «ждунов» счастливее?
В 1997 году в RFC 2068 HTTP/1.1
был представлен chunked encoding
«Прогрессивная» загрузка страницы
(req, res, next) => {
const urlParts = url.parse(req.url, true);
getHeaderData(urlParts.query.id)
.then(headerData => {
res.write(template.render('header', headerData));
return getFastData(/* params */);
})
.then(fastData => {
res.write(template.render('fast', fastData));
return getMainBlockData(/* params */);
})
.then(mainBlockData => /* etc */)
.then(html => res.end());
Node.js stream API
(req, res, next) => {
const urlParts = url.parse(req.url, true);
const pageStream = new MyReadable(urlParts);
pageStream.pipe(res);
}
const Readable = require('stream').Readable;
class MyReadable extends Readable {
_read(size) {
this.push('chunk of HTML');
this.push(null);
}
}
Не всё идеально
• Установка HTTP кодов и заголовков НЕ возможна после получения
первого байта
• Ожидание инициализации JS
Нормально делай – нормально будет
• Дробить на компоненты и запросы
Нормально делай – нормально будет
• Дробить на компоненты и запросы
• Следить за зависимостями компонентов от данных
Нормально делай – нормально будет
• Дробить на компоненты и запросы
• Следить за зависимостями компонентов от данных
• Использовать плейсхолдеры, чтобы не «прыгал» контент
Нормально делай – нормально будет
• Дробить на компоненты и запросы
• Следить за зависимостями компонентов от данных
• Использовать плейсхолдеры, чтобы не «прыгал» контент
• Контролировать редиректы до 1-го байта
Всё клёво,
прогрессивный рендеринг – нужен!
Какие есть варианты сегодня?
Какие есть варианты сегодня?
• github.com/aickin/react-dom-stream ★ 1,776
• markojs.com ★ 2,795
• catberry.org ★ 722
• dustjs.com ★ 2,565
Что мы хотим от «решения»?
• Критично SEO
• Скорость работы сайта
• Скорость разработки
Что мы хотим от «решения»?
• Критично SEO ➜ серверный рендеринг
• Скорость работы сайта
• Скорость разработки ➜ изоморфность, компонентность
Catberry.js
Catberry.js
• Изоморфный
• Компонентный
• Прогрессивный рендеринг
• Flux архитектура
• SEO
• Разделенный bundle.js
Экосистема Catberry.js
• Плагин для IDEA, Atom
• Catberry Debugger (Chrome Developer Tools)
• l10n, oauth2-client, logger, uhr…
• CLI Utility, Yeoman generator
• Gitter Chat
Cat-components
• Серверный рендеринг
• Любой* шаблонизатор
• Нет Shadow DOM
• Можно ставить через NPM
* Pug, Handlebars, Dust…
React vs Catberry
React vs Catberry
• Виртуальный DOM • Реальный DOM + morphdom
React vs Catberry
• Виртуальный DOM
• JSX
• Реальный DOM + morphdom
• Любой* шаблонизатор
(Pug, Handlebars, Dust…)
React vs Catberry
• Виртуальный DOM
• JSX
• Смешивание верстки и кода
• Реальный DOM + morphdom
• Любой* шаблонизатор
(Pug, Handlebars, Dust…)
• Стили и логика разделены
React vs Catberry
• Виртуальный DOM
• JSX
• Смешивание верстки и кода
• bundle.js
• Реальный DOM + morphdom
• Любой* шаблонизатор
(Pug, Handlebars, Dust…)
• Стили и логика разделены
• app.js + externals.js
React vs Catberry
4xRAM 1xRAM
–15% производительность
На примере 1000 ToDo MVC
React vs Catberry
~40 Кб ~28 Кб
На примере Hello World
React vs Catberry
~40 Кб
~350 Кб
~28 Кб
~ 35 Кб
На примере Hello World
На примере ToDo MVC
React vs Catberry
~40 Кб
~350 Кб
~28 Кб
~ 35 Кб
На примере Hello World
На примере ToDo MVC
Приложения на Catberry
Опыт в команде Flamp
• C 2014 года разработка фронтенда на Catberry
• 4 проекта
• Всего 3 фронтенд разработчика
Опыт в команде Flamp
• C 2014 года разработка фронтенда на Catberry
• 4 проекта
• Всего 3 фронтенд разработчика
• Год назад всё переписали с нуля
Опыт в команде Flamp
• C 2014 года разработка фронтенда на Catberry
• 4 проекта
• Всего 3 фронтенд разработчика
• Год назад всё переписали с нуля
• 300+ компонентов в текущей версии flamp.ru
Опыт в команде Flamp
• C 2014 года разработка фронтенда на Catberry
• 4 проекта
• Всего 3 фронтенд разработчика
• Год назад всё переписали с нуля
• 300+ компонентов в текущей версии flamp.ru
• И мы не сошли с ума
Last chunk
• Прогрессивный рендеринг – проверенная временем (с 1997г)
технология и отлично поддерживается
• Если у вас много долгих запросов, то это для вас
• Есть отличные реализации
• Можно реализовать самому в любом проекте (legacy code ♥)
Прогрессивный
рендеринг, Catberry.js
Михаил Реенко
m.reenko@flamp.ru

Mais conteúdo relacionado

Mais procurados

Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Ontico
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
IT-Portfolio
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
Roman Pavlushko
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
it-people
 

Mais procurados (19)

Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем Титаренко
 
Андрей Ларионов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
Андрей Ларионов, Moscow Atlassian Meetup 21 апреля, Mail.Ru GroupАндрей Ларионов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
Андрей Ларионов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
 
Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)Стабы для фронтенда - Никита Мостовой (HeadHunter)
Стабы для фронтенда - Никита Мостовой (HeadHunter)
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...
Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...
Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Laz...
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...
 

Semelhante a Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)

Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
 
NPAPI
NPAPINPAPI
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
Alex Chistyakov
 
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest
 

Semelhante a Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp) (20)

Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Ryazan
RyazanRyazan
Ryazan
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
 
NPAPI
NPAPINPAPI
NPAPI
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
Sivko
SivkoSivko
Sivko
 
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
CodeFest 2012. Сапегин А. — Архитектура сайта Alawar.ru с учетом высоких нагр...
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабирование
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 

Mais de Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Mais de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 

Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)

Notas do Editor

  1. Используется chunked transfer encoding (RFC 2068, HTTP 1.1)
  2. Используется chunked transfer encoding (RFC 2068, HTTP 1.1)
  3. Используется chunked transfer encoding (RFC 2068, HTTP 1.1)
  4. Используется chunked transfer encoding (RFC 2068, HTTP 1.1)
  5. Используется chunked transfer encoding (RFC 2068, HTTP 1.1)
  6. Используется chunked transfer encoding (RFC 2068, HTTP 1.1)