Решение о том, следует ли предоставлять интерфейс для нетехнического персонала для изменения бизнес-правил, в значительной степени зависит от нескольких факторов, включая цели проекта, стоимость проекта, срок действия проекта и соотношение известных и неизвестных в проект.
Например, если бы я полагал, что никто не будет использовать интерфейс правил, то я, вероятно, отказался бы от его реализации. Однако, если бы у меня была причина полагать, что изменения будут частыми и что разные конечные пользователи будут ожидать, что будут действовать разные правила, я бы подумал над созданием такой функциональности.
Я решил сделать это в проекте, и потребовались годы, прежде чем эта функция стала широко использоваться. Я подозревал, что в конечном итоге у нас появятся конечные пользователи, которые захотят сами что-то настроить, поэтому мы реализовали эту функциональность по частям.
Все началось с того, что могли использовать только определенные люди, такие как разработчики или администраторы. Интерфейс был неуклюжим, но его можно было использовать, если вы знали, что делаете. Но к тому моменту, когда продукт был близок к завершению, логика бэкэнда движка правил пригодилась, и наша команда дизайнеров предоставила ему красивый, ориентированный на клиента пользовательский интерфейс.
Если бы я делал это по-другому, я мог бы выбрать другую архитектуру базы данных только потому, что кривая обучения высока. Но вкратце, его раннее построение привело к тому, что впоследствии многие функции, с которыми сталкиваются клиенты, стали без головной боли необходимости возвращаться в код и реорганизовывать его, чтобы включить все динамические правила.