Введение в программирование на основе визуальных автоматов в Rosmaro

1656668298 vvedenie v programmirovanie na osnove vizualnyh avtomatov v rosmaro

Лукаш Макух

1*wYiiltn59DLXuTckakv8rg
Талисман Росмаро

Программирование на основе автоматов означает программирование с состояниями и переходами. Состояниям соответствует разное поведение. Переходы именуются в честь событий и обрисовывают, как изменяется это поведение.

Самый простой способ подумать об этом – ориентированный граф. Вот пример проклятого принца:

1*cxViPSuy4F9OJtQXcRAd0Q
Очень простой ориентированный граф

Это может быть или a Принц или a Лягушка. The Принц поедание пиццы – это событие, вызывающее переход от Принц состояние до Лягушка состояние.

Я собираюсь показать вам, как выполнять (визуальное) автоматизированное программирование в Rosmaro.

Rosmaro – это библиотека JavaScript, которая позволяет создавать объекты с сохранением состояния.

Объект имеет статус, когда два идентичных вызова метода могут дать разные результаты.

Вот пример:

> model.introduceYourself(); 'I am The Prince of Rosmaro!'
> model.eat({dish: 'yakisoba'}); undefined
> model.introduceYourself();'I am The Prince of Rosmaro!'
> model.eat({dish: 'pizza'});undefined
> model.introduceYourself();'Ribbit! Ribbit!'

Другим примером объектов с сохранением состояния является графический интерфейс пользователя. Подумайте о банкомате. Вы можете посмотреть дважды на его экран и увидеть разные сообщения и поля. Твои глаза такие же. То, как вы смотрите на экран, не изменилось. Изменилось состояние банкомата. Возможно, вы выбрали какой-то параметр, нажав кнопку или, возможно, сработал какой-то таймер. Что-то повлекло за собой переход из одного состояния в другое.

Ниже представлены несколько примеров интерфейсных программ, созданных с помощью программирования на основе визуальных автоматов.

1*wSe8QRkF9KCFWrK4l4gn6g
Кодовая база программы To-Do не содержит логических значений.
1*73H1rmEcexjfg3o-BB2SRA
У этого мастера два пути. Для этого нет ЕСЛИ.

Способ Rosmaro построения объектов с сохранением состояния состоит в том, соединить нарисованный график с написанным кодом.

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

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

Rosmaro сохраняет все состояние модели в подключенном механизме хранения. Это может быть все от обычного старого объекта JavaScript до базы данных NoSQL. Он также использует пессимистическую блокировку, чтобы предотвратить переход в непоследовательное состояние.

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

Сначала откройте редактор Rosmaro. Затем нажмите НАГРУЗКИ кнопку, чтобы начать новый проект.

1*UKxKP4zIYv0UaMXt0C2S4Q

Разместите основной график.

1*ahW-cir31VYEJ9cejGyUsg
1*C2aMW6A9Z7rxwLll0nE8Hw

Нажмите НОВЫЙ УЗЕЛ.

1*kMlmPurzTdi02OryTx1rGg

Разместите локальный узел под названием Принц.

1*wcyKGVD0HjXTHp2gJ6e7xQ

Затем добавьте локальный узел под названием Лягушка.

1*riJxknEZaHyt2bblanzuoQ

Наведите курсор мыши на начало точку входа и нарисуйте стрелку до Принц узел. Затем нарисуйте стрелку от Принц к Лягушка и позвони ел пиццу. Наконец-то нажмите ДОБАВИТЬ УЗЕЛ.

1*Ny2w0wNxp8I4wQ3uKMLpkw
1*GuMz85fYAj4N6KZtinbYSA

Добавьте листик наз Принц.

1*NfV-0-geNWNNok4n6GyRRw

Затем добавьте лист под названием Лягушка.

1*GaWnKZe4G6ezzQGCHzsVjQ

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

1*6nIgD-hbb8wS8hbF6S8OJA
1*CR5ZvCLP8GsC4VLgN8sylA

График готов. Нажмите кнопку, которая называется ГЕНЕРИРУЙТЕ КОД.

1*atgBQ9GnIjRBfNyc6CM_5w

Пора написать немного JavaScript. Во-первых, вам нужно получить все зависимости.

npm i rosmaro rosmaro-in-memory-storage rosmaro-process-wide-lock --save

Затем вам нужно импортировать и вызывать их.

Сгенерированный график можно импортировать в файл JSON или вставить непосредственно в код. Чтобы сделать этот пример максимально простым, предлагаю вставить его в код.

Лягушка, конечно, существо проще, чем принц. Реализовать его поведение просто. Каждый раз, когда мы просим лягушку представиться, она говорит: «Риббит! Риббит!»

Принц не только представляется, но обращает внимание на то, что он ест. Он может съесть какую-либо личность, и все в порядке. Но как только он съест пиццу, он идет по стрелке, которая называется ел пиццу.

Пора собрать обработчики вместе.

Модель готова. Вот полный код:

Идентичные звонки к представьтесь метод возвращает разные значения. Возвращенное значение зависит от событий, произошедших в прошлом. Это доказывает, что модель объект имеет состояние.

Код «Проклятого принца» находится на GitHub. Он использует только основные функции Rosmaro. Работая над реальными приложениями, вы захотите использовать более продвинутые методы. Некоторые из них включают в себя подграфы, динамические ортогональные области и контекстный объект.

Вы можете узнать больше о Rosmaro из его официальной документации.

Добавить комментарий

Ваш адрес email не будет опубликован.