Member 13127265 Ответов: 1

Создайте генератор рабочих процессов с помощью HTML/CSS/JS


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

Моя проблема заключается в том, что я хотел бы знать, есть ли оптимальный способ сделать это. У меня есть тысячи строк и сценариев, которые я просто задаюсь вопросом, хорошо ли писать все возможности в Javascript, как я делаю сейчас, или было бы проще записать их в XML-файл и прочитать из него или что-то еще.

Что я уже пробовал:

В настоящее время рукописные все возможные решения находятся в файле JS.

1 Ответов

Рейтинг:
1

Nick_3141592654

Это идеальный кандидат для решения на основе государственной машины. На самом деле рабочий процесс по определению является государственной машиной. Если вы еще не знакомы с этой темой, вы найдете много описаний.

Зачем беспокоиться? Ну, вы же сами сказали, что у вас есть много тысяч строк JS. Если вы формализуете свое решение в конечный автомат или вам может понадобиться вложенная машина, например, используя "внешнюю" машину, которая направляет весь рабочий процесс, с подмашинами, активируемыми при вводе определенных состояний верхнего уровня.

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

Ключевыми особенностями конечного автомата являются: (1) Определение состояний, это "действия" (вещи, которые должны быть сделаны) в вашем рабочем процессе; (2) Определение разрешенных переходов (если в состоянии "а" вы можете перейти в состояние "В", "С", .. "Z", а также, возможно, обратно в "А" и т. д.); (3) определение событий, приводящих к переходам состояний. В вашем случае завершение какой-то работы, вероятно, является событием, но, возможно, может произойти прерывание, такое как отмена задачи, которое может вызвать переход в другое состояние (например, бездействие).

Я не думаю, что вы должны смотреть на XML как на что-то, что нужно принять просто потому, что это кажется возможной полезной технологией. Да, XML может играть определенную роль, но вам нужно проработать свой дизайн во-первых, пусть используемые технологии вытекают из этого, а не проектируют что-то с предварительным предположением, что вы должны использовать ту или иную технику.

Я опубликовал это как решение, которое, вероятно, немного оптимистично, однако, реалистично говоря, я не думаю, что на ваш вопрос можно ответить более конкретно. Удачи вам в этом-звучит как забавный проект!