Приходилось ли рекомендовать избавиться от пакетов для уменьшения размера бандла
Что проверяют
Умеете ли вы принимать решение по замерам и защищать его перед командой. Вопрос про удаление пакетов на самом деле про то, отличаете ли вы работу над числом в отчёте сборщика от работы над скоростью у пользователя.
Как отвечать
Опишите порядок действий.
- Измерить. Анализатор сборки и разбор по картам исходников показывают, что именно лежит в стартовом куске. Смотреть надо размер после сжатия, а не вес файла на диске, и отдельно то, что уже уехало в ленивую загрузку.
- Понять, что тормозит. Скорость отрисовки и отзывчивость у живых пользователей важнее суммы килобайт. Часто выясняется, что самый тяжёлый груз это сторонние скрипты и картинки, а вовсе не библиотеки.
- Выбрать приём. По убыванию отдачи: выкинуть две версии одной библиотеки, заменить пакет платформенной возможностью, ограничить набор подпорок для старых браузеров списком поддерживаемых, увести редкие тяжёлые экраны в динамический импорт, а точечные импорты применять там, где сборка действительно отрезает лишнее.
- Посчитать цену. Работа с часовыми поясами, деньгами и разбором пользовательского ввода дешевле остаётся в библиотеке, чем переписывается своими руками без тестов.
Аргумент для команды формулируйте через пользователя: столько-то килобайт в стартовом куске ради одной функции, вот замена, вот что мы теряем.
Где спотыкаются
Радуются цифре в отчёте, которая ничего не меняет на устройстве пользователя. Стартовый кусок похудел, а первая отрисовка по-прежнему ждёт блокирующий шрифт и ответ стороннего домена, и время загрузки осталось тем же.
Меняют пакет на лёгкий аналог и теряют то, за что платили: локали, часовые пояса, крайние случаи разбора, накопленные исправления. Через полгода своя замена весит столько же, но живёт без тестов и без сопровождения.
Верят в отрезание неиспользуемого кода там, где его нет. Сборка в устаревшем формате модулей, необъявленные побочные эффекты, импорт всего пространства имён ради одной функции: код попадает в результат целиком. Проверяется это не верой, а повторным замером после правки.