Всем привет!
У меня есть какая-то своя тактика, и я продолжаю ей придерживаться, хоть и идет непросто.
На данный момент у меня появился визуальный конструктор логики. Он является отдельной веткой от алгоритмов, описываемых обычным человеческим языком.
Он планируется как довольно простой для понимания людьми.
При этом одновременно он уже экспортируется в пять современных языков программирования: C++, C#, Rust, Go, TypeScript.
Некоторые вещи уже покрыты тестами и более менее стабильны, но проект все еще сырой.
В конструкторе логики есть три вида схем:
Функция. Может принимать на входе параметры, вызывать другие функции.
Структура объектов: описание структур данных. Их можно использовать как типы данных в функции.
Внешнее API. Описание внешнего API. В коде, в зависимости от языка генерируются объекты либо интерфейсы. При вызове любой функции клиентский код обязан передать в качестве параметра реализацию данного API. В схеме функции есть возможность вызова АПИ добавлением соответствующей иконы.
Таким образом можно более менее полностью описать логику доменной области. Программистам нужно будет только реализовать внешнее АПИ.
На данный момент есть готовый пример простой игры "змейка"
https://www.youtube.com/watch?v=-OPhNlZsEWoОна экпортируется в Rust, запускается на микроконтроллере STM32. Также экспортируется в TypeScript, и запускается в браузере.
Хотел запустить также и из под C++, но я с С++ нечасто работаю, никак не смог нормально поднять проект. Но знающим людям сложностей особых не должно составить.
Поиграться в браузере можно тут:
https://falang-io.github.io/example-snake/code/ts/public/index.htmlИсходный код и код схем тут:
https://github.com/falang-io/example-snake/. Их можно скачать и запустить в программе, и самому отредактировать.
Последнюю версию программы можно скачать тут:
https://download.falang.io/releases/stable/defaultПотихонечку делать документацию к проекту:
https://falang.io/ru/docs/Также веду свой телеграм канал с обновлениями
https://t.me/falang_ioВот так выглядят некоторые схемы алгоритма змейки: помимо них там еще много функций, которые вызывают друг друга.
Во внешнем коде реализуется только механизм рисования.
Остальное все генерирует Falang.
Вложение:
Комментарий к файлу: Основная ветвь алгоритма Змейка на фаланге
main.png [ 8.68 МБ | Просмотров: 1558 ]
Вложение:
Комментарий к файлу: Описание внешних API
GameApi.png [ 1.02 МБ | Просмотров: 1558 ]
Вложение:
Комментарий к файлу: Описание объектов текущего состояние системы
State.png [ 3.23 МБ | Просмотров: 1558 ]
Вложение:
Комментарий к файлу: Проверка на то, что игра окончена
isGameOver.png [ 947.82 КБ | Просмотров: 1558 ]