SlideShare a Scribd company logo
1 of 80
Download to read offline
Фронтенд
для миллионов
Анастасия Горячева
Avito
Нижний Новгород, 17 июня 2017
Анастасия
Горячева
• Frontend team lead в Avito
• basis.js contributor
• github/tyanas
• twitter/tyanas_
Avito.ru
• Популярный
• Высоконагруженный
Подробнее в блоге на Хабре
История
без фронтенда
без фронтенда
фронтендеров
• 2007 – старт Avito
• ~2012 – 1-й фронтендер
• …
• 2017 – ~30 фронтендеров
• 2007 – старт Avito
• ~2012 – 1-й фронтендер
• … –> Фронтенд в Avito WSD, дек 2015
• 2017 – ~30 фронтендеров
• Технологический стек
• Процессы в компании
Технологии
• native JS
• react + redux
• basis.js
Native JS
• ядро сайта Avito.ru
• вкрапления jQuery
• es2015+
React + Redux
• новые проекты
• подключаются как node modules
Что на react?
• VIN → карма автомобиля autoteka.ru
• Мессенджер avito.ru/profile/messenger
• Служба поддержки support.avito.ru
• Доставка b2c avito.ru/reklama/delivery
• Контекстная реклама avito.ru/profile/context
• транспиляция babel
• для css: stylus, clean-css
• сборка gulp + webpack
SPA для pro-пользователей
• ActiAgent.ru – недвижимость
• ActiDealer.ru – автомобили
Acti*
• написано на basis.js
• инструменты basisjs-tools
• в том числе csso для css
WebSocket
• мессенджер
• в Acti* еще и счетчики, триггеры
Перешли

на WebSocket
(частично)
Процессы
• Ход разработки
• Сборка, тестирование
• Внедрение нового,
саморазвитие
• git pull / clone / checkout
• typing typing typing typing typing typing typing
• git commit, git push
• git pull / clone / checkout
• typing typing typing typing typing typing typing
• [run tests]
• git commit, git push
Что после git push?
Ревью кода
• разработка в ветках
• выше сопровождаемость
• обмен знаниями
• самоконтроль
Ответственность за аппрув
• аппрувят только 1-4 самых опытных
• аппрувят все
• релизят дежурные
• релизят все
In review 🐓 <–> 🥚 In test
Как ускорить ревью?
Меньше рутины
• Линтеры: eslint, stylelint, stylint
• Ворнинги по статическому анализу кода
• Запуск этого .git/hooks/pre-push и при сборке
Зафиксировать соглашения
• меньше скрытых знаний
• не полагаемся на свою память
• инструменты: плагин с чеклистом
Лень – наш друг
Сборка
Avito.ru
• webpack+gulp
• uglify-js для js
• clean-css для css
aaa.css
bbb.styl
ab.css.gz
aaa.css
bbb.styl
transpile
with stylus
aaa.css
bbb.css concat
aaabbb.css
clean-css
ab.css
gzip
ab.css.gz
aaa.css
bbb.styl
transpile
with stylus
aaa.css
bbb.css concat
aaabbb.css
clean-cssab.css
gzip
ab.css.gz
minify
сборка CSS
aaa.js
bbb.es6
transpile
with babel
aaa.js
bbb.js concat
aaabbb.js
uglify-jsab.js
gzip
ab.js.gz
minify
сборка JS
Сборка в Acti*
• сборщик basisjs-tools-build
• внутри – разбор AST, статический анализ кода
• отчеты о ворнингах и ошибках realtime
• csso встроен в basisjs-tools-build
SPA
index.html
сжатый
css
сжатый
js
SPA
index.html
Парсинг,
анализ
Дерево
из AST
файлов
Компрессор
(трансформер)
Дерево
из AST
файлов
Транслятор
сжатый
css
сжатый
js
SPA
index.html
Парсинг,
анализ
Дерево
из AST
файлов
Компрессор
(трансформер)
Дерево
из AST
файлов
Транслятор
Сборка статики
сжатый
css
сжатый
js
SPA
index.html
Парсинг,
анализ
Дерево
из AST
файлов
Компрессор
(трансформер)
Дерево
из AST
файлов
Транслятор
сжатый
css
сжатый
js
index.html
Парсинг,
анализ
Дерево
из AST
файлов
Компрессор
(трансформер)
Дерево
из AST
файлов
Транслятор
сжатый
css
сжатый
js
index.html упоминания
ресурсов
(файлов)
файл
AST
парсинг
файл
AST
парсинг
Статический
анализ
больше ссылок на ресурсы
Дерево
из AST
файловАнализ
дерева
Отчет о разборе дерева
Компрессор
(трансформер)
Дерево
из AST
файлов
Транслятор
сжатый
css
сжатый
js
Отчет о разборе дерева
Отчет о разборе дерева
Выпуск релиза
• боты +- devops’ы
• выкатка на боевые сервера
• регрессионные тесты
• нотификации заинтересованным
Прозрачность

упрощает

контроль
Не фронтенд
Кто тестирует?
• юнит-тесты – сами
• в basis.js встроены ворнинги - заменяет
некоторые тесты
• ручное, пишут тест-кейсы
• частично – функциональные тесты
Дизайн и бэк
• спецификации (a.k.a. спеки)
• живое общение
Бэк: спеки на АПИ
• мобилки – еще один фронт для бэка
• контракты (json-schemas) 

на примере Acti*
Дизайн платформа
• суть: интерактивные спеки на компоненты
• доклады Александра Лобашева:
• SPA Meetup в Avito, апрель
• РИТ / FrontendConf в Сколково, июнь
UX-исследования
• UX-lab
• проектирование интерфейсов
• важно участие фронтендеров на ранних стадиях
Мы не одни

в этой вселенной
То,
чего можно избегать,
но нет
20%
• Развитие платформы
• Рефакторинг
• Внутренние проекты
Конференции
• Роман Дворнов про Rempl,

CodeFest, апрель 2017
• Александр Лобашев, Дизайн-платформа, 

SPA Meetup, апрель 2017
• Александр Амосов, Favicon на стероидах,

Moscow JS, ноябрь 2016
• Сергей Мелюков про Basis.js,

Moscow JS, ноябрь 2016
Митапы
• Проводим SPA Meetup с 2015, 

отчет 2017
• Хоcтим Moscow JS
Open Source
github/css/csso
github/csstree
twitter/rempljs
github/component-inspector
basisjs.com
github/webpack-analyzer
Покажи

свою

работу!
• История
• Технологии
• Процессы
• обсуждение изменений / code review
• сборка для production
• общение с не-фронтендерами
• саморазвитие
Спасибо!
twitter/tyanas_
github/tyanas gitter/basisjs
gist со ссылками http://bit.ly/js-nn-6-2017
Присоединяйтесь к нам!
• https://twitter.com/AvitoTech
• https://habrahabr.ru/company/avito/
• https://github.com/avito-tech
• https://hh.ru/vacancy/20223454
Вопросы?
twitter/tyanas_

More Related Content

What's hot

16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...IT-Portfolio
 
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)Ontico
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуИгорь Родионов
 
Актуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеDenis Izmaylov
 
WordPress.org Under the Hood, WordCamp Moscow 2017
WordPress.org Under the Hood, WordCamp Moscow 2017WordPress.org Under the Hood, WordCamp Moscow 2017
WordPress.org Under the Hood, WordCamp Moscow 2017Sergey Biryukov
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерDotNetConf
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновAnton Piskunov
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
 
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...Badoo Development
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...GoQA
 
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par... Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...it-people
 
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 Планирование развития автотестов, Кирилл Раткин, СКБ Контур  Планирование развития автотестов, Кирилл Раткин, СКБ Контур
Планирование развития автотестов, Кирилл Раткин, СКБ Контур it-people
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Ontico
 
Javaone 2013 moscow gradle
Javaone 2013 moscow gradleJavaone 2013 moscow gradle
Javaone 2013 moscow gradleEvgeny Borisov
 
"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)
"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)
"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)AvitoTech
 
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Yandex
 
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия ПучнинаGeeksLab Odessa
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidSQALab
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
 
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...QAFest
 

What's hot (20)

16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Highload...
 
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
 
Актуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработке
 
WordPress.org Under the Hood, WordCamp Moscow 2017
WordPress.org Under the Hood, WordCamp Moscow 2017WordPress.org Under the Hood, WordCamp Moscow 2017
WordPress.org Under the Hood, WordCamp Moscow 2017
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
 
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
 
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par... Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 Планирование развития автотестов, Кирилл Раткин, СКБ Контур  Планирование развития автотестов, Кирилл Раткин, СКБ Контур
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
 
Javaone 2013 moscow gradle
Javaone 2013 moscow gradleJavaone 2013 moscow gradle
Javaone 2013 moscow gradle
 
"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)
"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)
"Подходы, используемые в разработке iOS-клиента Viber" Кирилл Лашкевич (Viber)
 
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
 
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
 

Similar to Фронтенд для миллионов (НН)

Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...Ontico
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнKonstantin Likhter
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.Alexander Titov
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Vladimir Malyk
 
Денис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуДенис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуYandex
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...GeeksLab Odessa
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомAlex Musayev
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...MoscowJS
 
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Badoo Development
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...Kirill Danilov
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в DjangoMoscowDjango
 
UWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiUWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiAlexander Makarov
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiAlexander Makarov
 
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10OdessaFrontend
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Yandex
 
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Vladimir Malyk
 

Similar to Фронтенд для миллионов (НН) (20)

Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.
 
Денис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуДенис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылу
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
 
Git, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентомGit, как инструмент управления веб-контентом
Git, как инструмент управления веб-контентом
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
 
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
Доклад "nw.js: введение в кросс-платформенные декстопные приложения на JS" на...
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в Django
 
UWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiUWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем Yii
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
 
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
 
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?
 

Фронтенд для миллионов (НН)