|
|
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
Клиент желает (точнее, требует) следующую функциональность: Имеется набор процессов разделённых по важности на категории, скажем A, B, C, D. Процессы могут быть как обязательные к исполнению так и необязательные. Имеются различные события, которые процессы инициируют. События могут быть как запланированные, порождаемые автоматически по расписанию, так и генерируемые пользователем. Клиент хочет иметь правила, согласно которых сненерированный процесс может быть запущен, отклонён или передвинут на другую дату. Проблема, разумеется в правилах, которые на текущий момент полностью сформулированы (относительно простой пример – не более двух процессов категорий С и D в один день), но в будущем ограничены более или менее только фантазией маркетологов. Вопрос в том, есть ли какие-то стандартные способы реализации? Наша идея пока состоит в том, чтобы отказаться от жёстких правил, но определить для всех процессов весовые коэффициенты и задать процессам квоты (суточные, недельные) для разных категорий процессов. Т.е. если некий вновь сгенерированный процесс превышает суточную и недельную квоту, то он отклоняется. Если процесс превышает суточную квоту, но остается в пределах недельной квоты, то он передвигается на следующий день. Стопроцентной реализации правил может в таком варианте не получиться, что, вероятно, будет приемлимо. Есть надежда, однако, что изменения в правилах потребуют только переконфигурации квот и весовых коэффициентов, без необходимости перепрограммирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 12:25 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
sti, BPMN Язык BPEL Дорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 12:34 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
sti, копайте в сторону rule engines, их много на разные вкусы и потребности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 12:40 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
sti, Правила подходят или нет смотрит бизнес аналитик. Ваши правила по квотам ничем не хуже или лучше правилам от заказчика. Жесткие ограничения согласовыватся и прописываются в ТЗ. Т.к. сроки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 12:41 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
sti Вопрос в том, есть ли какие-то стандартные способы реализации? Стандартов на сегодня миллионы. Но для удовлетворения любых фантазий обычно применяют скрипты. Хотите фантазии? Учитесь программировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 12:53 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
BPEL, rules engine... Спасибо за наводки. Будем смотреть. Petro123sti, Ваши правила по квотам ничем не хуже или лучше правилам от заказчика. Жесткие ограничения согласовыватся и прописываются в ТЗ. Конечно квоты ничем не лучше. Вопрос в том, в каком варианте будет проще вносить изменения. Заказчик готов платить и за разработку, и за изменения, но если минимальное изменение будет стоить столько же, как и вся исходная разработка, ему это будет трудно понять. alex55555Хотите фантазии? Учитесь программировать. Напрограммировать не фокус. В данном случае правильнее было бы сказать - учитесь проектировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 15:51 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
stiВопрос в том, в каком варианте будет проще вносить изменения. Должен быть движок процессов. У него есть характеристики. Т.к. у вас все с нуля, то нет ответа на вопрос. У вас в Модели должны быть предусмотрены правила. И свой язык DSL для заказчика. Он на этом DSL будет их писать. Либо делаете пару правил с галкой и остальное по доработке за деньги. Как плагины. Два варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 16:13 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
stiВ данном случае правильнее было бы сказать - учитесь проектировать. Логично. Но было бы интересно узнать, когда же вы наконец научитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2018, 12:14 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
sti Вопрос в том, есть ли какие-то стандартные способы реализации? DSL. Или вы ждёте какой-то магии и волшебства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2018, 14:08 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
stiНапрограммировать не фокус. Если база на SQL, то за DSL можно взять сам SQL. Вынести правила в хранимые процедуры с фиксированным набором in/out параметров и дать пользователю интерфейс их ограниченного редактирования. Некторые при этом дают пользователю возможность писать текст "по-русски", т.е. заменяют IF->ЕСЛИ и т.д Часто это кончается тем, что такое "программирование" начинает требовать отдельного программиста, т.к. чуть более сложные правила пользователи не то, что написать, но и уже написанные- прочесть не могут. Отдельный вопрос- правильно это или нет, но такая практика часта даже в коробочных продуктах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:26 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
tunknownЕсли база на SQL, то за DSL можно взять сам SQL. Это практически заживо себя похоронить. tunknownОтдельный вопрос- правильно это или нет, но такая практика часта даже в коробочных продуктах. Это по инерции. Повсеместно от логики в SQL отказываются и выпиливают при первой же возможности. Остаются лишь существующие системы на поддержке. И старперы, которые не смогли прыгнуть дальше хранимых процедур в силу ограниченности и неспособности мышления, которые продолжают пихать их разработках. Кушать всем хочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 15:33 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
hVosttПовсеместно от логики в SQL отказываются и выпиливают при первой же возможности.Потом приходится поддерживать новомодные студенческие поделки, т.к. сами "студенты" этого не могут осилить. Но этот разговор не по текущей теме. hVosttИ старперы, которые не смогли прыгнуть дальше хранимых процедур в силу ограниченности и неспособности мышления, которые продолжают пихать их разработках. Кушать всем хочется.Ваше мнение по ORM я понимаю, но не разделяю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 10:14 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
tunknownПотом приходится поддерживать новомодные студенческие поделки, т.к. сами "студенты" этого не могут осилить. Но этот разговор не по текущей теме. Я не понимаю. Если вы говорите о студентах, подразумеваете ли вы, что те же студенты, которые делают "поделки", вдруг пишут качественные хранимки? Не находите, что ваше странное заявление -- абсурд. При чём, по моему опыту и моей памяти, хранимщики до старости лет остаются на уровне студентов и пишут в хранимках такое адище, что даже нашим джунам плакать захочется. Связано это с тем, что хранимщики обычно плевать хотели на принципы и паттерны разработки, это ещё очень хорошо, что они вообще про это знают или хотя бы слышали. tunknownВаше мнение по ORM я понимаю, но не разделяю. ORM тут не при чём. Я говорил в начале про DSL, люди должны писать логику в терминах бизнеса, а не в терминах реляционной модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 10:46 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
hVosttлюди должны писать логику в терминах бизнеса, а не в терминах реляционной модели. Люди ничего не хотят, ни писать, ни изучать. Поэтому должен быть "мотиватор". И если он есть, то хоть в терминах, хоть не в терминах - напишут и будут счастливы. Ну а вы выдаёте вариант "чуть попроще" за панацею. Только панацея - наличие мотиватора, а это есть организационный вопрос. Вообще софт писать без увязки с организацией есть глупость, но именно так его почти все и пишут, и потому спрашивают "как написать лучше" в ситуациях, когда надо спрашивать "как понравиться заказчику больше". Ну а правильные "писатели софта" давно знают, как заказчикам нравиться. А правильные заказчики начинают с организации, и потому у их программистов возникают вопросы лишь из серии "как в такой-то тулзе запустить заявленную в её рекламе возможность?". Ну да это всё лирика, ведь большинство по прежнему будет обслуживать неспособных к организации вменяемой деятельности заказчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 11:20 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
hVostttunknownПотом приходится поддерживать новомодные студенческие поделки, т.к. сами "студенты" этого не могут осилить. Но этот разговор не по текущей теме. Я не понимаю. Если вы говорите о студентах, подразумеваете ли вы, что те же студенты, которые делают "поделки", вдруг пишут качественные хранимки? Не находите, что ваше странное заявление -- абсурд. Вопрос не в качестве работы, а в том, что хранимые процедуры хотя бы можно отдельно пооптимизировать в отличие от парадигмы- "у нас технические ограничения ORM". ORM- это вкомпилённый монолит, наличие же SQL позволяет говорить о слоях доступа. hVosttПри чём, по моему опыту и моей памяти, хранимщики до старости лет остаются на уровне студентов и пишут в хранимках такое адище, что даже нашим джунам плакать захочется.Не знаком именно с этими хранимщиками, но любые разработчики, и старые и новые могут быть хорошими и не очень. hVosttСвязано это с тем, что хранимщики обычно плевать хотели на принципы и паттерны разработки, это ещё очень хорошо, что они вообще про это знают или хотя бы слышали.Либо они применяют методы, не знакомые смотрящим со стороны ORM. hVosttORM тут не при чём. Я говорил в начале про DSL, люди должны писать логику в терминах бизнеса, а не в терминах реляционной модели.IF/CASE/WHILE/SET и прочее относятся к общим предложениям процедурного языка, а не к реляционной модели. Если DSL процедурный, то это делу не мешает. Если нужен декларативный DSL, то этот метод не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:42 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
alex55555в ситуациях, когда надо спрашивать "как понравиться заказчику больше" Имхо, подход «понравиться заказчику» это тупиковый путь :) Нужно не понравиться заказчику, а решать его задачи, чтобы заказчик поимел с этого выгоду, и желательно не разовую, а с перспективой. alex55555"как в такой-то тулзе запустить заявленную в её рекламе возможность?" Фиче-ориентированный подход. Знаем, проходили :) Тоже не айс. Одна действительно нужная и правильно реализованная фича дороже и выгодней десятков прикольных, но никому не нужных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 20:09 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
tunknownВопрос не в качестве работы, а в том, что хранимые процедуры хотя бы можно отдельно пооптимизировать в отличие от парадигмы- "у нас технические ограничения ORM". ORM- это вкомпилённый монолит, наличие же SQL позволяет говорить о слоях доступа. Вопрос в качестве работы. По-оптимизировать запрос тоже можно, и без всяких хранимок. Клиенты с СУБД по-вашему на каком языке общаются? На птичьем? Какое отношение оптимизация имеет к хранимкам, интересно? Да и зачем заниматься этой обезьяней работой. tunknownЛибо они применяют методы, не знакомые смотрящим со стороны ORM. У вас пунктик по поводу ORM. Я бы мог бы с вами и здесь поспорить, но я вообще не говорю про ORM. Я топлю за то, чтобы не заниматься обезьяней работой. Не писать SQL, если это может сделать машина. И про оптимизацию это тоже касается. Просто не все умеют, и приходится обезьянить в хранимках. Тут уж у кого на что хватает тямы. tunknownIF/CASE/WHILE/SET и прочее относятся к общим предложениям процедурного языка, а не к реляционной модели. Если DSL процедурный, то это делу не мешает. Если нужен декларативный DSL, то этот метод не подходит. Вы забываете, что кроме непосредственной работы с данными, которые к слову сказать могут лежать где угодно, не только в одной единственной SQL СУБД, но ещё и в кеше, в ElasticSearch, разбросаны по кластеру, по микросервисам, и вообще по разным подсистемам, в программном комплексе. Куда тут можно воткнуть жалкие несчастные хранимки, я даже не знаю. А как обеспечивать безопасность, не грантованную, а именно пользовательскую. Везде в хранимках вставлять WHERE и потом героически поддерживать? Да это примерно как плюнуть в лице работодателю и сказать, я не умею и не хочу учиться делать по-нормальному, буду делать как умею, по-обезьяньему, платите деньги и не жужжите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 20:26 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
Имхо, подход «понравиться заказчику» это тупиковый путь :)Вообще-то заказчик охотно платит именно "за понравится". :) Ему до лампочки, что какой-от там умник решил сделать некрасиво но по умному. Пример: некоторые совершенно дебильные новомодные ГУИ-интерфейсы. Поубивалбы. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 21:52 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
tunknownВопрос не в качестве работы, а в том, что хранимые процедуры хотя бы можно отдельно пооптимизировать в отличие от парадигмы- "у нас технические ограничения ORM". ORM- это вкомпилённый монолит, наличие же SQL позволяет говорить о слоях доступа. ORM вполне позволяет запускать хранимки со сложной логикой обработки требующей специальной оптимизации. Например отчеты на ORM писаться в общем случае не будут. ORM используется там, где логика вынесена в доменный слой, и это сильно ускоряет разработку. Логика в хранимых процедурах используется в основном в data-centric системах и там никаких ORM нет и не надо. Обычные-же прикладные учетные системы уже ушли от подобного рода архитектуры т.к. доменный слой позволяет маштабировать сложность куда лучше, чем хранимки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 05:01 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
stiИмеется набор процессов разделённых по важности на категории, скажем A, B, C, D. Процессы могут быть как обязательные к исполнению так и необязательные. "Процессы" это некие операции в или с БД (пресчет, резервное копирование, отчет, проверка и тд и тп) Или это некие оргмероприятия (запуск изделия, найм/увольнение сотрудника, остановка линии, техобслуживание оборудования, замена картриджа, сдача отчетности и тд и тп.) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 05:28 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
hVosttНужно не понравиться заказчику, а решать его задачи, чтобы заказчик поимел с этого выгоду, и желательно не разовую, а с перспективой. Есть масса областей, где выгода, и тем более "с перспективой", совершенно не очевидна. И здесь резко встаёт вопрос "кто кому нравится". hVosttalex55555"как в такой-то тулзе запустить заявленную в её рекламе возможность?" Фиче-ориентированный подход. Знаем, проходили :) Тоже не айс. Одна действительно нужная и правильно реализованная фича дороже и выгодней десятков прикольных, но никому не нужных. Речь об оптимизации набора инструментов под задачу вместо оптимизации задачи под набор инструментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 11:03 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
L_argoПример: некоторые совершенно дебильные новомодные ГУИ-интерфейсы. Поубивалбы. :) А можно конкретнее? Интересно, что там в новомодных гуях настрадали :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 11:04 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
alex55555, Например бесит главное меню у Вин10. :) а также, когда: - Некоторые контролы, кот. показаны серым неактивным цветом, но при этом активны. - Кнопки в виде лебелки. - крошечные кликабельные иконки 4х4 точки. - Неочевидные поля ввода, вообще без видимых габаритов. - Белые поля на белом фоне. Или еще хуже, серые на сером. - Дебильные схроллбары, кот. иногда вообще нельзя принять за схроллбар и понять размер списка. - Выпадающие списки из сотен строк с фикс.высотой всего в 3-4 строки и плавным схролом. Чтобы попасть в нужный пункт нужно долго целиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 11:27 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
Спасибо, всем кто по делу. 982183stiИмеется набор процессов разделённых по важности на категории, скажем A, B, C, D. Процессы могут быть как обязательные к исполнению так и необязательные. "Процессы" это некие операции в или с БД (пресчет, резервное копирование, отчет, проверка и тд и тп) Или это некие оргмероприятия (запуск изделия, найм/увольнение сотрудника, остановка линии, техобслуживание оборудования, замена картриджа, сдача отчетности и тд и тп.) ? Если смотреть с точки зрения БД изнутри, то это всего лишь изменение или не изменения состояния некотрого объекта: оставить как есть, передвинуть по времени, запустить сегодня. Дальше уже есть движок, который процессы, назначенные "на сегодня" запускает. Petro123У вас в Модели должны быть предусмотрены правила. И свой язык DSL для заказчика. Он на этом DSL будет их писать. Заказчик писать ни на каком языке не станет. При появлении нового правила он попросит его реализовать нас. Да, за деньги. И это должно быть реализуемо и реализуемо с приемлемыми затратами. Petro123Должен быть движок процессов. У него есть характеристики. На чем-то таком пока и остановились, т.е. ограниченный набор характеристик процессов, объектов, на которых процессы применяются, и правила их обработки. Фантазии внутри этой модели будут легко применимы. Фантазии, выходящие за рамки этой модели, станут предметом для отдельного разговора. Удастся это продать заказчику или нет, посмотрим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 16:09 |
|
||
|
Реализация произвольных правил. Куда копать?
|
|||
|---|---|---|---|
|
#18+
sti, Тогда никаких ЯП и DSL для заказчика. А на вашем уровне можно вполне наделать КЛАССОВ наследников базового класса Правило. Аналог шаблона команды. И обойтись вообще без ЯП. За доп.плату выкатите им новые правила. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 16:20 |
|
||
|
|

start [/forum/topic.php?fid=33&fpage=5&tid=1547226]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
96ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 201ms |

| 0 / 0 |
