Выбрать движок бизнес-логики

yroslavasako

Ищу движок для бизнес логики, никогда раньше ничем подобным не страдал. Соответственно критерии: простота вхождения для программиста (т.е. excel - это адски сложно), гибкость настроек бизнес-процесса, логическое упорядочение настроек. Производительность не критична абсолютно.
Движок будет использоваться для скриптования powersafe поведения ноутбука. Потому что три набора баш скриптов с пересекающимся функционалом и неявными параметрами, которые нужно между ними выдерживать слишком сложны в использовании из-за своего стохастического происхождения трудны для запоминания. Сегодня я столкнулся с необходимостью добавить ещё несколько правил срабатывания и дополнительных состояний. По личным ощущениям проще уже сделать с нуля на более подходящем инструменте, чем добиться более выборочного поведения от предустановленных скриптов.

6yrop

C#+ReSharper

6yrop

excel - это адски сложно
Кстати, во многом благодаря электронным таблицам произошел взрывной рост популярности персональных компьютеров http://en.wikipedia.org/wiki/Killer_application#Example

Dasar

не видно главное: чем запись поверх движка должна отличаться от записи в ЯП? Какие операции по работе с записью правил должны делаться лучше, и за счет чего?
ps
обычно, от движков бизнес-логики требуют следующее:
- визуализация правил
- dataflow (автоматический пересчет зависимых данных при изменении исходных данных или настроек)
- изменение правил не программистом или программистом с низким кол-вом опыта
- изменение правил по месту, без необходимости пересборки всех правил
это обычно делается за счет резкого уменьшения кол-ва используемых элементарных блоков, а также за счет использования записи кода, легко парсящейся внешними средствами (чаще всего это приводит или к xml-ю, или к своему недоязычку).
pps
из твоего же описания выходит, что всё это тебе не надо - значит скорее всего тебе надо смотреть в какую-то другую сторону

6yrop

записью правил должны делаться лучше, и за счет чего?
В языках общего назначения часто не реализован принцип Dataflow http://en.wikipedia.org/wiki/Dataflow
Для бизнес логики (для некоторых ее видов) это очень удобно.

6yrop

excel - это адски сложно
Кстати, электронные таблицы обязаны взрывному росту персональных компьютеров http://en.wikipedia.org/wiki/Killer_application#Example

Dasar

Сегодня я столкнулся с необходимостью добавить ещё несколько правил
вообще, конечно, если тебе нужна дешевая стоимость сопровождения (возможность внесения мелких исправлений по низкой себестоимости с минимальными рисками уронить всё), то стоит смотреть в сторону статически-типизированных языков.
если не пугают ФЯ и слабые IDE, то смотри в сторону статически-типизированных ФЯ - те же haskell, scala и т.д.
иначе остается Java или C#

yroslavasako

чем запись поверх движка должна отличаться от записи в ЯП?
в общем, ничем. Нормальные ЯП достаточно лаконичны, чтобы желать записи в каком-то другом виде. Плюс могут быть всякие reader macros, макрорасширения и template haskell для реализации странных желаний. Имеется в виду какая-нибудь библиотека примитивов с элементами для управления процессом. Программист пишет набор входных процедур, позволяющих снимать показания с работающей системы и передаёт дальше в систему анализа в одном из нескольких видов (ну там событие, шкалы и т.п.) Библиотека представляет набор правил и их комбинаторов, некоторая конфигурация которых анализирует текущую ситуацию и выдаёт заложенное для этого случая поведение как некоторые абстрактные типа вывода. Программист пишет процедуры, которые позволяют эти типы вывода применять к системе.
Почему я хочу готовую библиотеку - надеюсь, что кто-нибудь с большим опытом подобрал такой набор элементарных блоков, чтобы он логично сочетался и чтобы на практике он не сваливался в нечитаемый ужас. То есть эти блоки конфигратора и правила комбинации их могут иметь сильно ограниченную выразительность, применимую только к узком домену, но за счёт этого они должны легче читаться и дополняться. Мне кажется, что самому составлять архитектуру такой библиотеки дело весьма затратное по времени, и боюсь, что не смогу получить требуемого с первой попытки.

6yrop

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

katrin2201

забирай

yroslavasako

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

Dasar

Имеется в виду какая-нибудь библиотека примитивов с элементами для управления процессом.
я понимаю что ты хочешь, и это вполне разумно и имеет право на жизнь - но по факту я ничего красивого не встречал, потому что такого рода задачи решаются или инженерами (и под них делается один тихий ужас), или планктоном (под них делается другой тихий ужас).

katrin2201

Так ты перечитай исходный пост - ты просишь именно что серебряную пулю. "Хочу бизнес-процессы делать".
Вот еще таким можешь проникнуться.

yroslavasako

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

agaaaa

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

katrin2201

"Я хочу рулить компом" - тоже не очень специфическая задача, знаешь ли.
Я, пожалуй, не буду больше троллить и просто уйду из топика.
Оставить комментарий
Имя или ник:
Комментарий: