SlideShare a Scribd company logo
1 of 40
Download to read offline
Порядок для скорости
Система структурирования
фронтендовой части веб-приложений
Сергей Гущин,
веб-технолог
более 250 000вакансий
около 17 000 000резюме
Нужна главная страница
для незарегистрированного пользователя
Для зарегистрированных
работодателя:
соискателя:
Дизайнеры всегда переосмысливают
Аналитики что-то ищут
Ой, всё
Какие проблемы мы выявили:
Сложно было найти какой-то компонент на сайте
Компоненты постоянно изменялись и эти изменения не учитывались
в дальнейшем при создании похожих копонентов
Огромное количество компонентов
Сложно было отследить некоторые параметры компонента
(такие как аналитика, принадлежность к аб-тестам и тд)
Существовало большое количество поколений дизайна,
которые нигде неучтены
Чтобы узнать что-то о компоненте необходимо было задействовать большое
количество РАЗРАБОТЧИКОВ
1
2
3
4
5
6
Откуда взялись
эти проблемы?
<HTML>
{CSS}
(JS)
MODULES
COMPONENT 1
<HTML>
{CSS}
(JS)
MODULES
COMPONENT 2
<HTML>
{CSS}
(JS)
MODULES
COMPONENT 3
PHP CONTROLLER
PHP VIEW MODEL
SuperJob CSS COREJS APPJS LIBS
C 1 C 2 C 3
Компоненты PHP (BLITZ)
Старая схема
Как это всё выглядит в проекте:
supervisorclientcard
supportresumesuggestcatalog
tariffrestrictioninfo
tariffspromotab
tariffsgrid
SupervisorClientCard.html.blitz
TariffsGrid.html.blitz
SupervisorClientCard.html.blitz.css
TariffsGrid.html.blitz.css
SupervisorClientCard.html.blitz.js
TariffsGrid.html.blitz.js
SupervisorClientCard.html.blitz.modules
TariffsGrid.html.blitz.modules
Как это всё выглядит в проекте:
Как это всё выглядит в проекте:
Как это всё выглядит в проекте:
Как это всё выглядит в проекте:
newregistrationform
registrationsecondpivot
registrationformvarianta
reghrnewdesign
registersteptwo
Карл!
Чем нас не устраивал такой подход
к архитектуре компонентов:
Нет никакой документации к компонентам
Компоненты разбросаны по проекту бессистемно
Разработчикам сложно понять где и как искать компонент
Неизвестна ни одна дополнительная метрика компонента
(к какому дизайну относится, какие события аналитики есть
в компоненте, версия аб-теста и тд)
Компоненты могут создаваться бездумно, не учитывая — 
был такой компонент создан для этого или нет
1
2
3
4
5
мы придумали
Компоненты PHP (BLITZ)
Новая схема
JSON
PHP CONTROLLER
PHP VIEW MODEL
CSS CORE
JS APPJS LIBS
COMPONENT
SuperJob
<HTML>
{CSS}
(JS) JSON
MODULES
VERSION 1
H
C
J JSON
V 2
M
H
C
J JSON
V 3
M
V 1
V 2
V 3
Как это сейчас выглядит в проекте:
registration-form-hr
single-step
short
mobile
two-steps
layout.html
style.css
script.js
modules.blitz
info.json
info.json
интерфейс
Вот всё, что мы раньше
знали о компоненте:
Что мы знаем о компоненте
сейчас:
{
«name»: «registration-form»,
«title»: «Форма Регистрации»,
«descriptionId»: «33718355»,
«tags»: «регистрация, форма регистрации, работодатель»
}
Что мы знаем о версии компонента
сейчас:
{
«name»: «single-step»,
«title»: «Одношаговая регистрация»,
«descriptionId»: «33718334»,
«ownerId»: «2345»,
«design»: «3»,
«ab»: «single-step-test»,
«tags»: «регистрация, форма регистрации, работодатель»
«analitycs»: {«group»: «registrations», «events»: [«success, cancel, away»], «agregators»: [«yam», «vertica»]},
«task»: «EMP-156»,
«branches»: [«EMP-156», «registration-form», hr-registration]
}
Панель компонентов
Панель компонентов
Панель компонентов
Ну вы понимаете
Мы идем к менеджерам, аналитикам,
дизайнерам
За описанием компонентов
Узнать поколение дизайна для каждого компонента
За заказчиком
За информацией об А/Б тестах
1
2
3
4
Мы идём к бэкенду
Мы идем к бэкенду
Объединить все логически похожие компоненты
Реорганизовать архитектуру
Возможность постепенного обновления архитектуры компонентов
Шаблоны, стили и js-скрипты должны остаться без изменений
Возможность связать компоненты с: JIRA, Confluence, Bitbucket
Требования к новой
архитектуре компонентов:
1
2
3
4
5
Около 1000 компонентов
за месяц были переведены
на новую архитектуру
Как-то надо объяснить
руководству — зачем всё это?
Мы идем к руководителю
Знание информации о компонентах, без обращения к разработчикам
Снижение порога вхождения в проект новых разработчиков
Устранение дублирующихся или неиспользуемых компонентов
Возможность быстрой смены одного компонента на другой
Увеличение скорости разработки
Зачем все это?
1
2
3
4
5
Что было сделано за один месяц
3продакт-менеджера и 1аналитик описали около 500компонентов
2дизайнера опознали для этих компонентов одно из четырех поколений дизайна
3бэк-ендера полностью реорганизовали структуру для более чем 1000компонентов,
добавили связи с JIRA, Confluence, Bitbucket
2фронт-ендера выяснили какие компоненты пушат события в аналитику и какие
это события, а также сделали панель компонентов
Консистентность — насколько
однороден дизайн сайта
первое поколение
второе поколение
третье поколение
четвертое поколение
О планах
Все то же самое сделать
и для js-компонетов
Сделать поиск
по компонентам
Возможность
просмотра компонента
без окружения
Быстрое создание
компонентов
Сделать компоненты
самособирающимися
в коллекцию
1 2 3
54
О чём я?
Не бойтесь находить
проблемы
Говорите начальству
о том, что вас беспокоит,
и тогда ресурсы
найдутся сами собой
Решайте их,
привлекайте своих
коллег и другие
команды
Делайте, пробуйте,
творите
Делайте жизнь лучше
не только себе,
но и другим

More Related Content

What's hot

Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...Ontico
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Ontico
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)Ontico
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Anton Baranov
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Ontico
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинSergey Xek
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Badoo Development
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаSQALab
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС2ГИС Технологии
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)Ontico
 

What's hot (20)

Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
переезд мониторинга
переезд мониторингапереезд мониторинга
переезд мониторинга
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
 

Viewers also liked

Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Ontico
 
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Ontico
 
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Ontico
 
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
 
Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...
Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...
Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...Ontico
 
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Ontico
 
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Ontico
 
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)Ontico
 
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)Ontico
 
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Ontico
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Ontico
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Ontico
 
Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...
Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...
Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...Ontico
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Ontico
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
 
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)Ontico
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Ontico
 

Viewers also liked (20)

Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
 
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
 
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
 
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...
Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...
Как HeadHunter удалось безопасно нарушить RFC 793 (TCP) и обойти сетевые лову...
 
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
 
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)
 
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
 
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)
 
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
 
Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...
Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...
Сайт под управлением ERP или ERP под управлением сайта / Станислав Гоц (Lamod...
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
 
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
 

Similar to Порядок для скорости. Система структурирования фронтендовой части веб-приложений / Сергей Гущин (Superjob.ru)

Anatol filin pragmatic documentation 1_r
Anatol filin  pragmatic documentation 1_rAnatol filin  pragmatic documentation 1_r
Anatol filin pragmatic documentation 1_rrit2010
 
Проектирование пользовательских интерфейсов в компании EPAM Systems
Проектирование пользовательских интерфейсов в компании EPAM SystemsПроектирование пользовательских интерфейсов в компании EPAM Systems
Проектирование пользовательских интерфейсов в компании EPAM SystemsSQALab
 
Прагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектовПрагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектовAnatol Filin
 
Microsoft Team System 2010 для управления ЖЦ разработки и сопровождения ПО
Microsoft Team System 2010 для управления ЖЦ разработки и сопровождения ПОMicrosoft Team System 2010 для управления ЖЦ разработки и сопровождения ПО
Microsoft Team System 2010 для управления ЖЦ разработки и сопровождения ПОАлександр Шамрай
 
Software People 2010
Software People 2010Software People 2010
Software People 2010Sergey Orlik
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontendDenis Kolesnikov
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Александр Шамрай
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Alexander Novichkov
 
Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5rit2010
 
CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmRoman Savran
 
Использование трассировок на практике
Использование трассировок на практикеИспользование трассировок на практике
Использование трассировок на практикеSQALab
 
Как построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командахКак построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командахSQALab
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...ScrumTrek
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализSQALab
 
Методы оценки эффекта от внедрения Microsoft TFS
Методы оценки эффекта от внедрения Microsoft TFSМетоды оценки эффекта от внедрения Microsoft TFS
Методы оценки эффекта от внедрения Microsoft TFSАлександр Шамрай
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลาtoomtam
 

Similar to Порядок для скорости. Система структурирования фронтендовой части веб-приложений / Сергей Гущин (Superjob.ru) (20)

Anatol filin pragmatic documentation 1_r
Anatol filin  pragmatic documentation 1_rAnatol filin  pragmatic documentation 1_r
Anatol filin pragmatic documentation 1_r
 
Проектирование пользовательских интерфейсов в компании EPAM Systems
Проектирование пользовательских интерфейсов в компании EPAM SystemsПроектирование пользовательских интерфейсов в компании EPAM Systems
Проектирование пользовательских интерфейсов в компании EPAM Systems
 
Прагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектовПрагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектов
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
Microsoft Team System 2010 для управления ЖЦ разработки и сопровождения ПО
Microsoft Team System 2010 для управления ЖЦ разработки и сопровождения ПОMicrosoft Team System 2010 для управления ЖЦ разработки и сопровождения ПО
Microsoft Team System 2010 для управления ЖЦ разработки и сопровождения ПО
 
Software People 2010
Software People 2010Software People 2010
Software People 2010
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)
 
Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crm
 
Использование трассировок на практике
Использование трассировок на практикеИспользование трассировок на практике
Использование трассировок на практике
 
Как построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командахКак построить системный анализ в продуктовых Agile-командах
Как построить системный анализ в продуктовых Agile-командах
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
 
Больше чем анализ
Больше чем анализБольше чем анализ
Больше чем анализ
 
Методы оценки эффекта от внедрения Microsoft TFS
Методы оценки эффекта от внедрения Microsoft TFSМетоды оценки эффекта от внедрения Microsoft TFS
Методы оценки эффекта от внедрения Microsoft TFS
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลา
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
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)Ontico
 
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...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
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)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

More from 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)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
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...
 

Порядок для скорости. Система структурирования фронтендовой части веб-приложений / Сергей Гущин (Superjob.ru)

  • 1. Порядок для скорости Система структурирования фронтендовой части веб-приложений Сергей Гущин, веб-технолог
  • 3.
  • 9. Какие проблемы мы выявили: Сложно было найти какой-то компонент на сайте Компоненты постоянно изменялись и эти изменения не учитывались в дальнейшем при создании похожих копонентов Огромное количество компонентов Сложно было отследить некоторые параметры компонента (такие как аналитика, принадлежность к аб-тестам и тд) Существовало большое количество поколений дизайна, которые нигде неучтены Чтобы узнать что-то о компоненте необходимо было задействовать большое количество РАЗРАБОТЧИКОВ 1 2 3 4 5 6
  • 11. <HTML> {CSS} (JS) MODULES COMPONENT 1 <HTML> {CSS} (JS) MODULES COMPONENT 2 <HTML> {CSS} (JS) MODULES COMPONENT 3 PHP CONTROLLER PHP VIEW MODEL SuperJob CSS COREJS APPJS LIBS C 1 C 2 C 3 Компоненты PHP (BLITZ) Старая схема
  • 12. Как это всё выглядит в проекте: supervisorclientcard supportresumesuggestcatalog tariffrestrictioninfo tariffspromotab tariffsgrid SupervisorClientCard.html.blitz TariffsGrid.html.blitz SupervisorClientCard.html.blitz.css TariffsGrid.html.blitz.css SupervisorClientCard.html.blitz.js TariffsGrid.html.blitz.js SupervisorClientCard.html.blitz.modules TariffsGrid.html.blitz.modules
  • 13. Как это всё выглядит в проекте:
  • 14. Как это всё выглядит в проекте:
  • 15. Как это всё выглядит в проекте:
  • 16. Как это всё выглядит в проекте:
  • 18. Чем нас не устраивал такой подход к архитектуре компонентов: Нет никакой документации к компонентам Компоненты разбросаны по проекту бессистемно Разработчикам сложно понять где и как искать компонент Неизвестна ни одна дополнительная метрика компонента (к какому дизайну относится, какие события аналитики есть в компоненте, версия аб-теста и тд) Компоненты могут создаваться бездумно, не учитывая —  был такой компонент создан для этого или нет 1 2 3 4 5
  • 20. Компоненты PHP (BLITZ) Новая схема JSON PHP CONTROLLER PHP VIEW MODEL CSS CORE JS APPJS LIBS COMPONENT SuperJob <HTML> {CSS} (JS) JSON MODULES VERSION 1 H C J JSON V 2 M H C J JSON V 3 M V 1 V 2 V 3
  • 21. Как это сейчас выглядит в проекте: registration-form-hr single-step short mobile two-steps layout.html style.css script.js modules.blitz info.json info.json
  • 23. Вот всё, что мы раньше знали о компоненте:
  • 24. Что мы знаем о компоненте сейчас: { «name»: «registration-form», «title»: «Форма Регистрации», «descriptionId»: «33718355», «tags»: «регистрация, форма регистрации, работодатель» }
  • 25. Что мы знаем о версии компонента сейчас: { «name»: «single-step», «title»: «Одношаговая регистрация», «descriptionId»: «33718334», «ownerId»: «2345», «design»: «3», «ab»: «single-step-test», «tags»: «регистрация, форма регистрации, работодатель» «analitycs»: {«group»: «registrations», «events»: [«success, cancel, away»], «agregators»: [«yam», «vertica»]}, «task»: «EMP-156», «branches»: [«EMP-156», «registration-form», hr-registration] }
  • 26.
  • 31. Мы идем к менеджерам, аналитикам, дизайнерам За описанием компонентов Узнать поколение дизайна для каждого компонента За заказчиком За информацией об А/Б тестах 1 2 3 4
  • 32. Мы идём к бэкенду
  • 33. Мы идем к бэкенду Объединить все логически похожие компоненты Реорганизовать архитектуру Возможность постепенного обновления архитектуры компонентов Шаблоны, стили и js-скрипты должны остаться без изменений Возможность связать компоненты с: JIRA, Confluence, Bitbucket Требования к новой архитектуре компонентов: 1 2 3 4 5
  • 34. Около 1000 компонентов за месяц были переведены на новую архитектуру
  • 36. Мы идем к руководителю Знание информации о компонентах, без обращения к разработчикам Снижение порога вхождения в проект новых разработчиков Устранение дублирующихся или неиспользуемых компонентов Возможность быстрой смены одного компонента на другой Увеличение скорости разработки Зачем все это? 1 2 3 4 5
  • 37. Что было сделано за один месяц 3продакт-менеджера и 1аналитик описали около 500компонентов 2дизайнера опознали для этих компонентов одно из четырех поколений дизайна 3бэк-ендера полностью реорганизовали структуру для более чем 1000компонентов, добавили связи с JIRA, Confluence, Bitbucket 2фронт-ендера выяснили какие компоненты пушат события в аналитику и какие это события, а также сделали панель компонентов
  • 38. Консистентность — насколько однороден дизайн сайта первое поколение второе поколение третье поколение четвертое поколение
  • 39. О планах Все то же самое сделать и для js-компонетов Сделать поиск по компонентам Возможность просмотра компонента без окружения Быстрое создание компонентов Сделать компоненты самособирающимися в коллекцию 1 2 3 54
  • 40. О чём я? Не бойтесь находить проблемы Говорите начальству о том, что вас беспокоит, и тогда ресурсы найдутся сами собой Решайте их, привлекайте своих коллег и другие команды Делайте, пробуйте, творите Делайте жизнь лучше не только себе, но и другим