Проектирование экшенов

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
Уважаемые зенноводы, хочу посоветоваться.

Накостылил себе с пол сотни кубиков логики. Что-то получается, где-то есть сложности, но текущий вопрос вот в чём.

Логика получается разветвлённой и довольно объёмной (а будет ещё больше). Чем больше условий, тем соот-но больше связей и переходов. В процессе дебаггинга возникает необходимость визуального контроля и отладки экшенов в зависимости от содержания новых сайтов и новых условий.

Вопрос - как лучше проектировать общее рабочее древо? Ни в справке, ни в обучающих курсах я пока не встречал, чтобы этому уделяли внимание. Короче говоря, встаёт вопрос удобного проектирования.

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

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

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

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

В этом случае по вертикали исполнения мне будет понятно, где находится рабочая стадия, а где обработка условий (справа).

Хочу послушать более опытных зенноводов, хотя чаще всего я вижу просто построение кубиков слева направо.
 
Последнее редактирование:

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 344
Благодарностей
909
Баллы
113
Лучше начать заменять кубиками с C# кодом - в разы уменьшится количество дефолтных кубиков и будет более прозрачная логика. А в дефолтных кубиках циклы превращаются ещё в те костыли.
 
  • Спасибо
Реакции: Tony80

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
Лучше начать заменять кубиками с C# кодом - в разы уменьшится количество дефолтных кубиков и будет более прозрачная логика. А в дефолтных кубиках циклы превращаются ещё в те костыли.
Спасибо за отлик, согласен. Но мой уровень C# пока не позволяет рассчитывать на рефакторинг составленного через код на C#. Я пока ещё в начале пути (в этом вопросе), но большая разветвлённая логика нужна уже сейчас.

Так или иначе в шаблоне будут десятки, а со временем, вероятно, сотни условий обработки, поэтому уже сейчас полезно продумать вопросы проектирования, чтобы через каждые пару месяцев не рефакторить древо заново :-)
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 786
Благодарностей
1 951
Баллы
113
Если есть повторяющиеся большие блоки то их можно упаковывать в плагины, тогда место будет сокращаться.
Планировать схему логики можно на бумаге или через софт для MindMap.
 
  • Спасибо
Реакции: Tony80

Дмитрий202020

Активный пользователь
Регистрация
15.09.2020
Сообщения
278
Благодарностей
67
Баллы
28
либо проект в проекте, либо как плагин сохранять
 
  • Спасибо
Реакции: Tony80

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
Если есть повторяющиеся большие блоки то их можно упаковывать в плагины, тогда место будет сокращаться.
Угу, спасибо. В справке почитал - понятно, правда пока острой надобности в этом не вижу, нет пока частей к которым были бы многократные повторения (ну, кроме циклов).

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

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

Критические ошибки - влево.

Т.е. пытаюсь визуально разделить для себя рабочее представление и логику обработки.

Возможно я изобретаю велосипед, но мне удобно и глаз чётко улавливает на какой стадии рабочая логика отрабатывает.

Вот что пока получается.

115984


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

Планировать схему логики можно на бумаге или через софт для MindMap.
Да, знаю эту программу, обычно структуру сайтов в ней проектирую, но чаще всего это нужно для сторонней демонстрации, а здесь мне особо демонстрировать некому, да и сам PM даёт хорошее визуальное представление, когда есть чёткая логика.
 

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
либо проект в проекте, либо как плагин сохранять
В возможностью вложенности части шаблона - понятно, благодарю, но сейчас главная задача скорее правильно упорядочить рабочие этапы, не смешивая их с дополняющей обработкой по условиям.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 786
Благодарностей
1 951
Баллы
113
Т.е. пытаюсь визуально разделить для себя рабочее представление и логику обработки.
Верный подход. Можно добавлять больше пояснений, а то позже можно запутаться. Кстати самому блоку экшеном можно тоже добавлять название
 
  • Спасибо
Реакции: Tony80

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
Спасибо. Просто я ни у кого не видел, чтобы автор шаблона формировал рабочую этапность строго вниз (хотя насмотренность у меня маленькая), - все либо по диагонали вниз, при этом раскидывая доп. обработку хаотично, то тут, то там, либо работают фрагментами опускаясь вниз.

Верный подход. Можно добавлять больше пояснений, а то позже можно запутаться. Кстати самому блоку экшеном можно тоже добавлять название
Да, я добавляю названия в тех экшенах, где идут вариации проверок,

115987
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 786
Благодарностей
1 951
Баллы
113
  • Спасибо
Реакции: Tony80
Регистрация
21.07.2021
Сообщения
78
Благодарностей
30
Баллы
18
Правой кнопочкой по кубику конвертировать в C#
Около половины переводится, и сразу 20% сократить сможешь в легкую + на форуме есть темы с переведенными кубиками такие как списки например)
 
  • Спасибо
Реакции: Tony80

Дмитрий202020

Активный пользователь
Регистрация
15.09.2020
Сообщения
278
Благодарностей
67
Баллы
28
Спасибо. Просто я ни у кого не видел, чтобы автор шаблона формировал рабочую этапность строго вниз (хотя насмотренность у меня маленькая), - все либо по диагонали вниз, при этом раскидывая доп. обработку хаотично, то тут, то там, либо работают фрагментами опускаясь вниз.



Да, я добавляю названия в тех экшенах, где идут вариации проверок,

Посмотреть вложение 115987
делаю основной шаблон вертикально вниз, если выявляется где то отдельная логика строю рядом но уже влево или вправо. Чтобы не было беспорядка, так же комментирую. Если шаблон супер пупер громозкий, уже тогда делю бота на этапы или на функции которые он должен выполнять и запихиваю в проект в проекте. Получается что и отслеживать удобно где ошибка и сам проект выходит в пару кубиков)
 
  • Спасибо
Реакции: Tony80

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
Правой кнопочкой по кубику конвертировать в C#
Около половины переводится, и сразу 20% сократить сможешь в легкую + на форуме есть темы с переведенными кубиками такие как списки например)
Спасибо, но как уже сказал выше, работа с C# для меня пока неактуальна. Мне пока напротив нужна наглядность на кубиках, чтобы удобнее вести отладку.
 

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
делаю основной шаблон вертикально вниз, если выявляется где то отдельная логика строю рядом но уже влево или вправо.
Вот с этим вариантом для меня оказалось неудобно, потому что не совсем понятно - новое условие выводить слева или справа, что приоритетнее. А когда их полтора десятка по каждому шагу, начинается путаница - где искать и куда добавлять ещё одно.

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


Чтобы не было беспорядка, так же комментирую. Если шаблон супер пупер громозкий, уже тогда делю бота на этапы или на функции которые он должен выполнять и запихиваю в проект в проекте. Получается что и отслеживать удобно где ошибка и сам проект выходит в пару кубиков)
Пока до вложенности проекта не дошёл, но видимо придётся, потому что намечаются повторы.
В принципе громоздкость не пугает. Когда есть наглядность и этапность, то алгоритм считывается построчно.
 
Последнее редактирование:

Дмитрий202020

Активный пользователь
Регистрация
15.09.2020
Сообщения
278
Благодарностей
67
Баллы
28
Вот с этим вариантом для меня оказалось неудобно, потому что не совсем понятно - новое условие выводить слева или справа, что приоритетнее. А когда их полтора десятка по каждому шагу, начинается путаница - где искать и куда добавлять ещё одно.

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




Пока до вложенности проекта не дошёл, но видимо придётся, потому что намечаются повторы.
В принципе громоздкость не пугает. Когда есть наглядность и этапность, то алгоритм считывается построчно.
Вот интересно, а зеноводы свои шаблоны собирают просто как им нравится, или работают как по кабель-менеджменту для сборки пк :D
 

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 344
Благодарностей
909
Баллы
113
Вообще это дело вкуса, как проектировать шаблон, и если, например, в языках программирования есть соглашения о коде, где описывается стандарт кода для его удобочитаемости, то в кубиках естественно такого нет и строят шаблоны кто во что горазд. Иногда прям кровь из глаз, когда смотришь отдельные шаблоны, но видимо авторов это не беспокоит, лишь бы работало.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
  • Спасибо
Реакции: doc

Tony80

Client
Регистрация
21.07.2021
Сообщения
186
Благодарностей
59
Баллы
28
Вообще это дело вкуса, как проектировать шаблон, и если, например, в языках программирования есть соглашения о коде, где описывается стандарт кода для его удобочитаемости, то в кубиках естественно такого нет и строят шаблоны кто во что горазд.
Думаю, что это из-за того, что шаблон как правило разрабатывается одним человеком и в целом ему нет необходимости приводить его к каким-то правилам (паттернам проектирования и т.д.).

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

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 344
Благодарностей
909
Баллы
113
Думаю, что это из-за того, что шаблон как правило разрабатывается одним человеком и в целом ему нет необходимости приводить его к каким-то правилам (паттернам проектирования и т.д.).
Не всегда. Даже в конкурсных шаблонах есть много примеров, когда люди выкладывали шаблоны с жутчайшим говнокодом, как в виде кубиков, так и в C# коде. Это я не в обиду кому-то из авторов говорю, а просто как пример, что у всех разные критерии к своему продукту. Для некоторых важно только чтобы программа работала и неважно как она при этом будет выглядеть для тех, кто будет её разбирать.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)