Pull to refresh
18
0

Пользователь

Send message

Как размер кода зависит от минификатора, сборщика и языка. Неожиданное обновление webpack

Reading time6 min
Views12K
Меня зовут Илья Гольдфарб, я разработчик интерфейсов Яндекса. Мне интересно следить за тем, как развиваются инструменты для сборки фронтенда, поэтому я стараюсь изучать изменения в каждом релизе популярных решений.

В преддверии выхода пятой версии webpack я хочу рассказать о его, казалось бы, минорном релизе 4.26.0 от 19 ноября 2018 года, где неожиданно и без объявления войны изменилась версия минификатора по умолчанию. Раньше это был пакет UglifyJS, теперь же используется Terser, форк UglifyES — ветки UglifyJS, которая может сжимать и ES5, и ES6 код. Terser появился, когда основной майнтейнер отказался поддерживать и развивать UglifyES. Впрочем, UglifyJS тоже прекратил свое развитие с августа 2018 года, когда был выпущен последний релиз. В новом форке исправили некоторые баги и немного отрефакторили код.

API этих минификаторов совместимый, но результат сжатия они выдают разный. Обычно изменения подобного уровня происходят лишь в мажорных, а не минорных обновлениях. Из-за этого многие разработчики могут не обратить внимания на нововведение. Конечно, в большинстве случаев всё будет работать, но никто не хочет стать тем, кто на продакшне своего проекта получит баги из-за системы сборки и минификации.

Вся эта история подвигла меня провести маленькое личное исследование сжатия. Вот вопросы, которые я задал:

  • Что лучше сжимает ES5, Terser или UglifyJS?
  • Что быстрее загружается: сжатая версия ES5 от Terser или от UglifyJS?
  • Какая версия весит больше: ES5 или ES6? И как на это влияет TypeScript?
  • Большая ли разница между настройками по умолчанию и ручной настройкой?
  • А если не webpack? Кто выдаёт сборку меньшего размера, Rollup или webpack?
И вот какие я получил ответы
Total votes 32: ↑29 and ↓3+26
Comments10

Автоматизированная продажа электронных билетов на музыкальные мероприятия

Reading time4 min
Views1.8K
Как-то прошлой весной мой друг и коллега Александр llxff собирался организовать концерт в Казани одной известной металл группы. Хорошо потрепав себе нервы и разочаровавшись в организаторском деле, с горем пополам он его все таки провел.

Проблем было множество, и основная из них — муторные переговоры с теми, кто так или иначе связан с проведением концертов. Буквально по крупицам приходилось собирать контакты нужных людей и искать хоть какую-то информацию о клубах, арендаторах аппаратуры, местах продажи билетов.
Так и родилось желание максимально упростить все это дело.

Поскольку наиболее сложной проблемой было распространение билетов на концерт, мы и решили начать именно с нее.

Мы создали Оргап – площадку для организаторов музыкальных мероприятий, позволяющая удобно и быстро продавать билеты. Система позволяет создавать описания событий и выкладывать их в общую афишу. А при регистрации в качестве организатора, можно продавать электронные билеты.



Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments7

Архитектура взаимодействия клиентской и серверной частей Web приложения

Reading time8 min
Views14K
Хотел рассказать, как я вижу устройство архитектуры взаимодействия серверной и клиентской частей. И хотел бы узнать спросить хабровчан, чем плоха или хорошо такая архитектура.

Читать дальше →
Total votes 34: ↑20 and ↓14+6
Comments29

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity