Дрянной код действительно трудно поддерживать.Такова природа дерьмового кода, а не того, где он находится.Переход к «дрянному коду во внешнем интерфейсе» - это не совсем решение.
И если вы думаете, что структурные изменения базы данных не повлияют на бизнес-логику, закодированную во внешнем интерфейсе ... ммм -логика диктует по-другому.
Я думаю, что некоторые вещи хорошо обрабатываются в переднем конце, а некоторые вещи лучше обрабатываются в заднем конце.И я думаю, что правильное проектирование PL / SQL API, которое работает на уровне бизнес-объектов, может смягчить проблемы структурных изменений, изолируя их от других уровней.
Но если есть мысли о поддержке других БД, то этоЭто также проблематичная идея, поскольку не каждая БД поддерживает одни и те же конструкции.
Относительно того, к чему относится бизнес-логика, - это может полностью зависеть от вашего приложения, и, действительно, по соображениям производительности вам может быть полезно иметь некоторые аспектыиз этого в нескольких слоях.Это, конечно, может вызвать проблемы с обслуживанием, но все это становится частью компромисса, необходимого для доставки проекта или продукта.
Но, конечно, нет единого строгого универсального ответа.