Как мы разбили клиент miro.com на ленивые модули / Олег Плотников (Miro)

853
15.8
Онтико85 тыс
Опубликовано 5 декабря 2019, 21:07
Приглашаем на конференцию HighLoad++ 2024, которая пройдет 2 и 3 декабря в Москве!
Программа, подробности и билеты по ссылке: clck.ru/3DD4yb
--------
HighLoad++ Siberia 2019

Тезисы и презентация:
highload.ru/siberia/2019/abstr...

У нас на руках был один монолитный клиент и две задачи:
1) Загрузить целевой контент пользователю как можно быстрее.
2) Сделать так, чтобы разрабатывать клиент могло гораздо больше разработчиков, чем сейчас. Например 50.

Результаты:
1) Разрезали клиент на лениво-загружающиеся модули и ускорили загрузку приложения в 3 раза.
2) Новые фичи в продукте можно писать так, чтобы они загружались отложенно и минимально влияли друг на друга.

Расскажу, как организовали файловую структуру проекта и какие проверки добавили с помощью Webpack, чтобы один случайный импорт не убил все оптимизации. Опишу, что такое ленивый модуль. Расскажу об особенностях разрезания приложения, написанного на TypeScipt и AngularJS. И опишу принципы, которым мы теперь следуем, чтобы поддерживать достигнутые показатели.

Нашли ошибку в видео? Пишите нам на support@ontico.ru
жизньигрыфильмывесельеавтотехномузыкаспортедаденьгистройкаохотаогородзнанияздоровьекреативдетское