Используем конечные автоматы

вместе с Composition API

  • двойной клик
  • отмена
  • прелоадер
  • обработка ошибок
  • повторная загрузка

Проблемы

  • Плохо читаемый код
  • Высокий порог вхождения
  • Высокая сложность поддержки
    и расширения
  • Несуществующие состояния
  • Сложность в тестировании

Детерминированный конечный автомат

состояние (s1) + переход (t1) = состояние (s2)

всегда

Где используется?

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

Там, где есть процесс,
зависящий от состояния

Vue Router тоже автомат

Таблица переходов

T1 T2 T3 T4 T5 T6 T7
S1 S2 S1 S1 S1 S1 S1 S1
S2 S2 S2 S3 S2 S2 S2 S2
S3 S3 S3 S4 S5 S3 S3 S3
S4 S4 S4 S4 S4 S4 S4 EXIT
S5 S5 S5 S5 S5 S5 EXIT S5

Диаграмма состояний

Светофор

  • Проектирование вперёд
  • Очевидность работы
  • Простота разработки
  • Простота поддержки
  • Возможность делить между разработчиками
  • Легко тестировать

Плюсы

  • Поддержка
  • Масштабируемость

Минусы

Иерархические конечные автоматы

Доклад о приминении конечных автоматов в Яндекс.Диске

Copy of Используем конечные автоматы вместе с Composition API

By Гаврилов Евгений

Copy of Используем конечные автоматы вместе с Composition API

  • 304