SlideShare a Scribd company logo
1 of 87
Download to read offline
Фронтенд
для миллионов
Анастасия Горячева
Avito
Орёл, 24 июня 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
Подготовка к typing
• Выявляем проблему
• Описываем как историю
• Дробим историю на части
• Ставим задачу по каждой части
• И – наконец-то – typing, но разработка в ветке
Что после git push?
Ревью изменений
Зачем ревью?
• выше сопровождаемость
• обмен знаниями
• самоконтроль
Организация ревью
• Таск ABC-123
• Ветка ABC-123-fix
• pull request ABC-123-fix –> master
• Обсуждение и тестирование изменений
Условия для merge
• Есть добро от коллег
• Есть добро от тестеров
• Пройдены автотесты
Ответственность за аппрув
• аппрувят только 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/oreljs-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
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерDotNetConf
 
Актуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеDenis Izmaylov
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновAnton Piskunov
 
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par... Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...it-people
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
 
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 Планирование развития автотестов, Кирилл Раткин, СКБ Контур  Планирование развития автотестов, Кирилл Раткин, СКБ Контур
Планирование развития автотестов, Кирилл Раткин, СКБ Контур it-people
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Ontico
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...GoQA
 
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
 
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...QAFest
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...it-people
 
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Yandex
 
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия ПучнинаGeeksLab Odessa
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?Daniel Podolsky
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем ТитаренкоCodeFest
 

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)
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
 
Актуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработке
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par... Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
Создаем команду автотестирования в нетипичных условиях, Василий Никишин, Par...
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
 
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 Планирование развития автотестов, Кирилл Раткин, СКБ Контур  Планирование развития автотестов, Кирилл Раткин, СКБ Контур
Планирование развития автотестов, Кирилл Раткин, СКБ Контур
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
 
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)
 
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
QA Fest 2017. Олег Лимарчук. Создаём универсальный конвейер тестирования для ...
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
 
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
 
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем Титаренко
 

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

Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаКонстантин Никифоров
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Ontico
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooРИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooТарасов Константин
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL Anastasia Lubennikova
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
"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...Provectus
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним боротьсяВладимир Кожаев
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеDenis Chistyakov
 
Golang в avito
Golang в avitoGolang в avito
Golang в avitoAvitoTech
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 

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

Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
презентация.1
презентация.1презентация.1
презентация.1
 
Sivko
SivkoSivko
Sivko
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooРИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL Советы для начинающих разработчиков PostgreSQL
Советы для начинающих разработчиков PostgreSQL
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
"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...
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним бороться
 
GitFlow_MOEX
GitFlow_MOEXGitFlow_MOEX
GitFlow_MOEX
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
 
Golang в avito
Golang в avitoGolang в avito
Golang в avito
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 

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