Цели¶
Цели API¶
- Соблюдение спецификации W3C SCXML и оригинального формализма диаграмм состояний Дэвида Харела.
- Продвижение модели акторов на основе архитектуры событий
- Совместимость со всеми фреймворками и платформами
- Возможность полностью сериализовать определения автоматов в JSON (и SCXML)
- Чистое, функциональное
createMachine(...)
API - Нулевые зависимости
Выбирая XState¶
Если вы решаете, следует ли вам использовать XState, Джон Янарелла очень хорошо резюмировал свои доводы.
Когда я делал тот же выбор относительно того, использовать ли и защищать ли использование XState там, где я работаю, для меня выделялись следующие вещи:
-
Приверженность пониманию соответствующего уровня техники и информированию о реализации на основе существующих исследовательских работ (оригинальная статья Харела о диаграммах состояний), книг («Конструирование пользовательского интерфейса с диаграммами состояний» Хоррокса) и стандартов (SCXML W3C).
Многие из других библиотек, которые я рассмотрел по ходу дела, представляют собой проекты, которые останавливаются на реализации простых конечных автоматов. Их охват мал, поскольку они не устраняют последующие ограничения, которые можно преодолеть с помощью диаграмм состояний.
XState стоит на плечах гигантов, принимая спецификацию W3C SCXML — он получает выгоду от исследований этой рабочей группы. -
Это убежище от «синдрома блестящего цацки, связанное с использованием новейшей «библиотеки управления состоянием», получившей название «вкус месяца». Она точно реализует формализм 30-летней давности. В конечном итоге вы помещаете свою наиболее важную логику во что-то, что можете взять с собой в любую структуру пользовательского интерфейса (и, возможно, в другие реализации диаграммы состояний на других языках). Это библиотека с нулевой зависимостью.
Мир фронтенд-разработки — это дикий запад, который может освоить то, что другие инженерные дисциплины знали и использовали в течение многих лет. -
Начиная с версии 4, XState прошел критический порог зрелости, особенно с учетом появления визуализатора. И это только верхушка айсберга того, куда можно развиваться дальше, поскольку он (и его сообщество) вводят инструменты, которые используют преимущества того, как диаграмма состояний может быть визуализирована, проанализирована и протестирована.
-
Сообщество, которое растет вокруг XState, и понимание, которое оно приносит в конечные автоматы и диаграммы состояний. Вы увидите множество ссылок на исследовательские работы, другие реализации FSM и Statechart и т. д., которые были собраны Эриком Могенсеном на statecharts.github.io.