Является Ли Svelte Хорошим Выбором Для Реализации Виджетов?

Привет! Меня зовут Дмитрий Усов, я фронтенд-разработчик в компании Ситимобил.

Буквально несколько месяцев назад возникла задача создать виджет для заказа такси через сайт. В этой статье я хотел бы объяснить, почему для этой задачи был выбран Svelte, поделиться своим мнением о его преимуществах и недостатках, а также дать полезные ссылки, если вы решите изучить или использовать эту технологию.



Является ли Svelte хорошим выбором для реализации виджетов?



Исходные данные

Задача: создать виджет для заказа такси через сайт. Вам необходимо определиться с требованиями и исходя из них выбрать инструмент, с помощью которого будет написан этот виджет. Что было важно в моем случае:
  1. Со стороны бизнеса:
    • Виджет должен загружаться и запускаться быстро.

      В результате размер конечного пакета должен быть как можно меньшим.

  2. Со стороны разработки:
    • Компонентный подход. Это облегчит дальнейшие изменения.

    • Возможность избежать ручного управления DOM. Это позволит вам писать код быстрее.

    • Мне хотелось, чтобы эта технология развивалась, чтобы у нее было сообщество и хорошая документация.

Самое важное в этом списке — размер комплекта.

У React, Vue и Angular с этим проблемы.

Реагировать Вю Угловой
Размер времени выполнения (gzip + мин) 39,5 КБ + 2,6 КБ 22,8 КБ 90, 1 КБ
Я начал искать другие технологии и вспомнил Preact и Svelte. Здесь я обратил внимание на два момента:
  1. Все еще тот же размер во время выполнения.

  2. Stateofjs — насколько технология интересна разработчикам и насколько они ею довольны.



Является ли Svelte хорошим выбором для реализации виджетов?

Предействовать Стройный
Размер времени выполнения (gzip + мин) 3,8 КБ 1,4 КБ
Удовлетворен 78% 88%
Интересный 40% 67%
Среди дополнительных преимуществ Preact: весь фронтенд в нашей компании теперь написан на React, и это обеспечило бы взаимозаменяемость.

Преимущества Свелте:

  1. Выигрышные показатели в таблице.

  2. Отличная возможность для экспериментов, так как проект небольшой.

    Preact здесь проигрывает, так как внутри это React, который мы уже везде используем.

  3. Большинство компонентов являются домашняя страница Mail.ru написан на Svelte.
Я поговорил с коллегами, и мы сошлись на выборе Svelte.

Несколько слов о Svelte

Svelte - это язык с принципиально новым подходом к созданию пользовательских интерфейсов.

В то время как традиционные фреймворки, такие как React и Vue, выполняют большую часть своей работы в браузере, Svelte переносит эту работу на этап компиляции, который происходит при создании приложения.

Я рекомендую прочитать этот статью, чтобы узнать больше о Svelte.

Выполнение

Виджет представляет собой модальное окно с несколькими экранами и формами внутри.



Является ли Svelte хорошим выбором для реализации виджетов?

Здесь нужно было понять, сможет ли Svelte реализовать тот функционал, который указан в технических характеристиках.

Потратив день на изучение и тестирование, я пришел к выводу, что это возможно, и начал это реализовывать.

Доступен виджет - Здесь .

Сама реализация не заняла много времени — в Svelte имеется огромное количество полезных инструментов (об этом позже).

Один из самых запоминающихся моментов: поднятие локального обратного прокси для связи с серверной частью в обход CORS. Изначально для сборки проекта был выбран роллап, но, как выяснилось позже, запрещено убедитесь, что и горячая перезагрузка, и прокси активны, поскольку каждый предоставляет свой собственный сервер, и вы можете использовать только один.

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

В остальном все проблемы, с которыми я столкнулся, были решены быстро.



Итак, преимущества Svelte

Опишу все преимущества, которые заметил в процессе выбора технологии и реализации проекта.

Важный : все написанное здесь - мое личное мнение.

Возможно, преимущества, которые я выделил, не будут таковыми для вас, вашего проекта или компании.



Низкий порог входа

Здесь простой JS/HTML/CSS в компонентах и дополнительные бонусы от крупных фреймворков.

Новички и разработчики с опытом Vue/React/Angular обязательно найдут в Svelte что-то знакомое.



Скорость

  1. Размер времени выполнения (мин+gzip) 1,4 КБ .

  2. Нет виртуальный DOM .

    На этапе сборки Svelte знает все состояния приложения и то, как оно может меняться между ними.

  3. Минимальный шаблон .

  4. Технология удаления мертвого CSS. Если ваше приложение не использует какую-то часть CSS-кода, то подключенный линтер сообщит вам об этом.

    И если вы вдруг забудете удалить этот код, компилятор сделает это за вас.



Множество полезных инструментов разработки.

  1. Существует компонентный подход.
  2. Есть реактивность .

  3. Есть жизненные циклы компонентов .

  4. Есть контекст И магазины , позволяющий взаимодействовать между компонентами.

  5. Действия .

    Я также рекомендую статья AlexxNB , в котором он раскрыл больше примеров.

  6. Есть самый простой и функциональный анимация как я когда-либо видел.

    Несмотря на то, что анимации написаны как функции JS, они компилируются в нативные CSS-анимации и, соответственно, выполняются в отдельном от JS потоке.



Сообщество и документация

  1. Есть подробное документация В сети.

  2. Управление , который содержит все, что вам нужно знать, чтобы начать писать на Svelte.
  3. Есть русскоязычное сообщество в Telegram, в котором более 1500 человек.

  4. Есть официальный Дискорд с чатами на разные темы (сапер, свелте, вакансии, машинопись и т.д).



Минусы Свелте

А теперь о недостатках, которые я заметил в процессе выбора технологии и реализации проекта.

Опять же, важно : все написанное здесь - мое личное мнение.

Возможно, для вас, вашего проекта или компании выделенные мной минусы таковыми не будут.

Подсветка синтаксиса в Gitlab

Синтаксис Svelte изначально в Gitlab не выделено .

Это большая проблема в развитии команды.

ПавелМалый предложил вам использовать gitattributes в качестве обходного пути.



Является ли Svelte хорошим выбором для реализации виджетов?



Мониторинг ошибок

В Свелте нет обработчика ошибок , Как ErrorBoundary в React .

Виджет встроен в сайт, и вы не хотите глобально отслеживать все ошибки, которые возникают у этого сайта при подключении, например, Часовой .

Хотелось бы иметь возможность отслеживать ошибки JS конкретно в виджете.



Количество библиотек

Готовые решения очень мало .



Является ли Svelte хорошим выбором для реализации виджетов?



выводы

  1. Внимательно проверьте, соответствует ли выбранная вами технология заявленным требованиям.

  2. Во время реализации казалось, что лучшей технологии для виджета и быть не может. Писать на Svelte было огромным удовольствием.

    Надеюсь, появятся еще проекты, в которых это можно будет применить.

  3. Svelte — это пример того, как, не имея за собой финансовой поддержки, можно сделать отличную технологию, у которой определенно есть ниша для применения.

    Надеюсь, что с годами оно будет только расти.



Полезные ссылки и плагины на примере vscode



Благодарности

Отдельное спасибо Евгению Володину, Кристине Цараевой, Павлу Малышеву, Артему Пулявину, Владу Кабанцову, Павлу Луговкину за рецензирование статьи.

Теги: #JavaScript #svelte #SvelteJS

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.