DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 13:24

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 20 Март, 2022 09:39 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Язык ДРАКОН и ERP-система
для мастерской Wooden Print
Кирилла Романовича Лебедева


Кирилл написал мне письмо:
Цитата:
Здравствуйте, Владимир Данилович!

Нашел Вашу почту на drakon.su.
Меня зовут Лебедев Кирилл, 3,5 года занимаюсь производством деревянных настенных карт, мастерская называется Wooden Print https://woodenprint.ru/

Все это время я писал ERP систему для нашего производства на C++. Вышло довольно много полезных функций, даже удалось зарегулировать выполнение задач, тайминг, премии, работу с заказами.

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

В итоге я начал искать другие варианты решения проблемы быстрого создания бизнес процессов. Наткнулся на Дракон, наткнулся на приложение Степана Митькина drakon.tech, мне показалось это довольно многообещающим вариантом для быстрого создания функций бизнес логики на нижнем уровне.

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

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

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

Степан уже прошел этот путь, поэтому я попробовал ему написать. Вот тут уже появилась проблема - единственная его почта, которую я нашел - drakon.editor@gmail.com - не отвечает.

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

С уважением,
Лебедев Кирилл
https://woodenprint.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 20 Март, 2022 17:32 

Зарегистрирован: Среда, 24 Апрель, 2013 07:57
Сообщения: 186
Здравствуйте. Владимир Даниелович попросил ответить на ваш вопрос. Я уже более пяти лет веду проекты автоматизации на языке Дракон на продуктах 1с, abap, java, c#. Консультирую команды разработчиков. Сделал свой курс по работе разработчиков ПО на языке Дракон. От бизнес-процессов до кода. Работаю на редакторе Геннадия Тышова "ИС Дракон". Если интересно - свяжитесь со мной. Постараюсь вам помочь. Как вам связаться с Митькиным - не знаю. Мой телефон +79124294079.

С уважением, Александр Араптанов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Март, 2022 22:02 

Зарегистрирован: Понедельник, 21 Март, 2022 21:59
Сообщения: 1
Излагаю суть проблемы поточнее:

Тут вопрос в том, что у меня уже сделано довольно много классов, структур и методов в ядре, которое крутится на производстве. По сути, это огромный набор инструментов для работы с логикой, базой данных, межпроцессорным взаимодействием и т.д. И чтобы иметь возможность быстро проектировать дальнейшие процессы - нужно сильно модифицировать то, что есть в drakon.tech - добавить новые блоки, добавить к ним настройки и так далее. Того, что есть в базовом синтаксисе языка Дракон, сильно недостаточно, в силу специфики проектирования и эксплуатации бизнес логики. Хорошая аналогия - это как писать на ассемблере, когда есть высокоуровневые языки программирования. Грубо говоря, я хочу с помощью своих конструкций сильно поднять уровень абстракции проектирования, для многократного повышения скорости разработки.
Но для начала тогда нужно хотя бы написать и разобраться в том базовом уровне, который есть в drakon.tech.

И вот тут уже встают ряд алгоритмических вопросов ( которые как раз у Степана уже решены, причем в коде на js ):

Насколько я понимаю, структура блок-схемы в итоге представляет собой связный список, причем непростой. Каждый элемент имеет ссылку на элемент сверху, справа, снизу и слева. При чем все возможные дальнейшие изменения просчитываются на этапе перерисовки, чтобы не просчитывать при каждом нажатии, куда можно вставить новый элемент или куда можно переставить текущий. Возможность перестановки, насколько понимаю, зависит от типа элемента (например, входная это или выходная линия), находится ли она на главной дороге и на каком уровне вложенности она находится.
Раздумывал над тем, что именно здесь составляет основную сложность, пришел к выводу, что это три основополагающие задачи, каждая из которых выполняется при перестроении:
1) Посчитать {x, y, height, width} для каждого элемента.
2) Определить {x, y} всех мест, куда можно добавить новый элемент.
3) Определить возможность перестановки элементов, а также элементы, куда можно переставить.
Если я не прав и есть еще сложные места - поправьте меня пожалуйста.

Вот с этим как раз и не получается в лоб решить вопрос.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Март, 2022 09:28 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Кирилл Лебедев писал(а):
Насколько я понимаю, структура блок-схемы в итоге представляет собой связный список, причем непростой. Каждый элемент имеет ссылку на элемент сверху, справа, снизу и слева. При чем все возможные дальнейшие изменения просчитываются на этапе перерисовки, чтобы не просчитывать при каждом нажатии, куда можно вставить новый элемент или куда можно переставить текущий. Возможность перестановки, насколько понимаю, зависит от типа элемента (например, входная это или выходная линия), находится ли она на главной дороге и на каком уровне вложенности она находится.

Кирилл, я не совсем понял. В ДРАКОНе есть понятие валентной точки. Валентные точки строго определяют какие иконы и в какие точки можно вставлять
Пример 1.

Зачем нужны валентные точки при создании дракон-схемы

Валентные точки показаны желтыми кружками.
Чтобы увидеть анимацию, щелкните по схеме
Вложение:
quick-editing.gif
quick-editing.gif [ 629.16 КБ | Просмотров: 1857 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Март, 2022 09:34 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Пример 2.

Как быстро нарисовать дракон-схему

Валентные точки показаны желтыми кружками.
Чтобы увидеть анимацию, щелкните по схеме
Вложение:
fast-diagram-creation.gif
fast-diagram-creation.gif [ 678.72 КБ | Просмотров: 1857 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Март, 2022 09:39 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Пример 3.

Как переделать уже сделанную дракон-схему

Валентные точки показаны желтыми кружками.
Чтобы увидеть анимацию, щелкните по схеме
Вложение:
easy-diagram-editing.gif
easy-diagram-editing.gif [ 689.91 КБ | Просмотров: 1857 ]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB