Перейти к содержанию

Цели

Цели API

  • Соблюдение спецификации W3C SCXML и оригинального формализма диаграмм состояний Дэвида Харела.
  • Продвижение модели акторов на основе архитектуры событий
  • Совместимость со всеми фреймворками и платформами
  • Возможность полностью сериализовать определения автоматов в JSON (и SCXML)
  • Чистое, функциональное createMachine(...) API
  • Нулевые зависимости

Выбирая XState

Если вы решаете, следует ли вам использовать XState, Джон Янарелла очень хорошо резюмировал свои доводы.

Когда я делал тот же выбор относительно того, использовать ли и защищать ли использование XState там, где я работаю, для меня выделялись следующие вещи:

  1. Приверженность пониманию соответствующего уровня техники и информированию о реализации на основе существующих исследовательских работ (оригинальная статья Харела о диаграммах состояний), книг («Конструирование пользовательского интерфейса с диаграммами состояний» Хоррокса) и стандартов (SCXML W3C).

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

    XState стоит на плечах гигантов, принимая спецификацию W3C SCXML — он получает выгоду от исследований этой рабочей группы.

  2. Это убежище от «синдрома блестящего цацки, связанное с использованием новейшей «библиотеки управления состоянием», получившей название «вкус месяца». Она точно реализует формализм 30-летней давности. В конечном итоге вы помещаете свою наиболее важную логику во что-то, что можете взять с собой в любую структуру пользовательского интерфейса (и, возможно, в другие реализации диаграммы состояний на других языках). Это библиотека с нулевой зависимостью.

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

  3. Начиная с версии 4, XState прошел критический порог зрелости, особенно с учетом появления визуализатора. И это только верхушка айсберга того, куда можно развиваться дальше, поскольку он (и его сообщество) вводят инструменты, которые используют преимущества того, как диаграмма состояний может быть визуализирована, проанализирована и протестирована.

  4. Сообщество, которое растет вокруг XState, и понимание, которое оно приносит в конечные автоматы и диаграммы состояний. Вы увидите множество ссылок на исследовательские работы, другие реализации FSM и Statechart и т. д., которые были собраны Эриком Могенсеном на statecharts.github.io.