
В любой системе, которая имеет дело с реальным миром, так или иначе, присутствует куча условий и ветвлений.
Например, нам приходят заказы. От разных контрагентов. Но контрагентов есть множество видов и заказ каждого отдельного вида обрабатывается по отдельной логике.
Разработчик, задолбавшись реализовывать n-дцатое условие в коде, рано или поздно, решает написать некую конфигурацию бизнес-правил обработки этих самых заказов, дать в руки бизнес-людям конфигуратор и свалить в закат. Вроде, всё просто: реализовал десяток блочков, как-то их собрал в кучку под каждый отдельный случай и всё работает, можно пить смузи.
Но бизнес приходит с новыми требованиями. Там, где раньше были только составные условия типа «ИЛИ», теперь появляются «И» и «НЕ». Там, где была последовательная обработка всех правил по очереди, теперь появляются ветвления и дополнительные условия.
Монстр обрастает кастомными обработчиками, спецфункциями, простым шаблонизатором с переменными... Это всё дело нужно как-то поддерживать и дебажить. И вот уже появляется расширенная система логирования. Вначале для разработчиков, а потом уже и для бизнес-людей (чтобы они сами могли смотреть, почему их штука не работает как надо, и не дергать девелоперов).
Ну, и апофеозом этого дела будет встраивание скриптового языка (js, groovy и т. д.) в условия и действия. Цикл замкнулся. Поздравляю, ваш «круд» теперь тьюринг-полный.
Я наблюдал это и в больших проектах, и в маленьких. Рано или поздно, хардкода начинает не хватать и разработка изобретает очередной велосипед (вначале беговел, а затем потихоньку превращает это всё дело в мотоцикл из «Безумного Макса»).

Готовых отчётов по данным не хватает и вот аналитикам в руки уже даётся база, SQL или BI-система, куда разработчики сгружают подготовленные данные.
Множество промежуточных этапов, казалось, можно было бы и избежать. Если начать разработку всех этих «хитрых» движков заранее, на старте проекта. Да вот нет.
Во-первых, на старте это громадные излишества, а во-вторых — всё равно не угадаете, что понадобится.
Автор: rozho)))k.
Ещё материалы по этой теме:
- Беспомощность разработчика
- Производительность веб-сервисов
- Хороший рекламный текст
- Отслеживаем лайки как события в Google Analytics
- Плагин для поиска битых ссылок на Wordpress