|
|
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Есть некий объект на которым нужно производить множество операций. Одни короткие в пределах 15с другие могут занять целый час. Причем есть между операциями зависимости когда какую можно запускать после какой, есть зависмости можно запускать только если одна из какого то набора операций в данный момент не производится. Такая вот куча мала. Дебаг еще то удовольствие все в голове держать. Как такие вещи решаются, ну и куда копать и чего читать посоветуйте. Как вообще называются проблемы такого типа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 12:23 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
llemingЕсть некий объект на которым нужно производить множество операций. Одни короткие в пределах 15с другие могут занять целый час. Причем есть между операциями зависимости когда какую можно запускать после какой, есть зависмости можно запускать только если одна из какого то набора операций в данный момент не производится. Такая вот куча мала. Дебаг еще то удовольствие все в голове держать. Как такие вещи решаются, ну и куда копать и чего читать посоветуйте. Как вообще называются проблемы такого типа. А в чем конкретно проблема? lleming...чего читать посоветуйте... я бы почитал? что нибудь со словами "теория конечных автоматов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 12:26 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
[quot Leonid Kudryavtsev А в чем конкретно проблема? [/quot] пока все это на уровне if else типа если по таким операциях статус done, а других статус wait то можно иначе reject. Причем объект не одного типа а разного и с разными зависимостями. как такими зависимостями управлять? Зависимости не статические еще и меняются и уточняются регулярно. Как то эти зависимости описать чтобы можно было хоть как то управлять ими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 13:02 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
lleming... Как то эти зависимости описать чтобы можно было хоть как то управлять ими. пока выглядит как обычный "конечный аппарат" состояние объекта - операция (допустимая для данного состояния) - новое состояние Описать можно банальной табличкой. Но тут проектировать не готов. Сначала хорошо бы самому книжки/википедию перечитать ))) Ну и я так понимаю, что у Вас ряд операций может быть ассинхронными. Что тоже добавляет некоторую сложность. Т.е. нужно будет вводить еще какие-то переходные состояния, например: "лампочка не горит" (состояние) - нажали на выключатель (операция пользователя) - "лампочка зажигается" (состояние) - пришло подтверждение включения (системная операция) - "лампочка горит в штатном режиме" (состояние) IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 13:14 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev"конечный аппарат" читать "конечный автомат". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 13:19 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНу и я так понимаю, что у Вас ряд операций может быть ассинхронными. IMHO имеено так Leonid KudryavtsevЧто тоже добавляет некоторую сложность. да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 13:32 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevряд операций может быть ассинхронными.коренным образом всё меняется. Всё переводится на событийную модель. Делать половину синхронно, а половину в потоках крайне сложно. Это уже другой автомат) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 14:53 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
lleming, Посмотрите Spring Batch Drools Autosys По первому - надо долго обсуждать но если взлетит - то будет хорошо интегрировано в ентерпрайз. Второе - по сути dsl для принятия решений. Последнее - вообще не про java но с помощью него можно строить сложные зависимости между заданиями OS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 15:01 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Petro123Leonid Kudryavtsevряд операций может быть ассинхронными.коренным образом всё меняется. Всё переводится на событийную модель. Делать половину синхронно, а половину в потоках крайне сложно. Это уже другой автомат) Совершенно ничего не меняет Конечный автомат, он конечным автоматом и останется. IMHO & AFAIK Событийно-ориентированное программирование и конечный автомат ничем друг другу не противоречат, а замечательно друг друга дополняют. maytonВторое - по сути dsl для принятия решений. Тут можно ошибаться, но мне кажется, автору нафик никакое "принятие решений" не нужно У него оно уже есть, в виде кучи if. Описав же конечный автомат и все возможные состояния. тут же будет понятно, какие операции и почему (в каких сотояниях) резрешены или запрещены. И программисту и постановщику. Если же подходить "принятие решений", то правила очень часто начинают становится противоречивыми и непонятным. Note: про Drools и Rule-based ничего не знаю и против не имею, но не уверен, что в описанном lleming случае нельзя без них обойтись. Например, порядок применения правил не задан, а от аналитика (а то и нескольких разных аналитиков) приходят два противоричивых указания: Код: sql 1. 2. 3. 4. 5. 6. Еще терпимо. когда таких условий/проверок немного, а когда их под 20-30..... и ты не понимаешь что конкретно и какие случае по бизнесу они проверяют.... это п...ц. Тестирования и взаимные притензии могут в месяцы и даже в годы перерасти. У коллеги сейчас такая фигня. Куча непонятных и взаимопересекающихся проверок и постоянные притензии: "в этом случае, должно было бы по другому, Вам же написали, что в этом случае см. правило N 100500" (а то, что правило 100500 противоречит правилу 100501 - заказчик не задумывается). IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 15:30 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev Например, порядок применения правил не задан, а от аналитика (а то и нескольких разных аналитиков) приходят два противоричивых указания: Код: sql 1. 2. 3. 4. 5. 6. (а то, что правило 100500 противоречит правилу 100501 - заказчик не задумывается). IMHO & AFAIK это вполне термимо если есть возможность показать это аналитику а то он это он не поймет если стопицот правил Код: sql 1. 2. 3. 4. 5. 6. 7. но если наглядно была бы возможности показать взаимоисключающие параграфы в списке правил mayton сэнкью почитаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 16:44 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Про сто питсот правил. Если они изначально заданы таблично и компилируются роботом в код то это вполне себе норм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 17:09 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
У нас все немного хуже. Постановщик формулирующий правила - просто пользователь. Самое для него простое: "программа не работает, программист виноват, читать ТЗ лучше нужно, см. пункт N 100500". Вопрос поймет/не поймет, даже не стоит ((( На задаче уже 4-ый программист, текущий кодирует в поте лица с нового года, а воз и ныне там. А вот в ситуации "конечный автомат" - все просто. Есть таблица состояний, есть разрешенные переходы. Все. Проблемы конфликтов на уровне кода уже не встоет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 17:21 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
Мы говорим об одних и тех же вещах. Я не против FSM или таблички переходов. Это просто разные формы представления знаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 19:17 |
|
||
|
управление сложными сущностями
|
|||
|---|---|---|---|
|
#18+
llemingТакая вот куча мала. Дебаг еще то удовольствие все в голове держать. Не надо держать в голове, надо держать в коде. ;-) Начните хоть с каких нибудь тестов. А потом потихоньку рефакторите код и добавляйте новых тестов. Как минимум вы будете уверены, что при добавлении нового условия, старые работают как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2018, 05:51 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=46&tid=2122025]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 156ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...