Ваши коллеги связывают архитектуру с реализацией.
Идея многоуровневого приложения заключается в том, что оно разбито на части, которые инкапсулируют определенные виды обработки (хранение, бизнес-логика, представление) и взаимодействуют друг с другом с помощью четко определенных интерфейсов. Точно так же, как можно успешно выполнять вещи, которые напоминают объектно-ориентированное программирование в необъектно-ориентированных языках, можно делать то же самое с несколькими уровнями в одной среде, такой как сервер базы данных. Общим для успешной работы является потребность в заботе, дисциплине и понимании вовлеченных компромиссов.
Давайте рассмотрим трехуровневое приложение, в котором два уровня реализованы в базе данных:
- Уровень данных: Состоит из таблиц базы данных , доступ с помощью четырех стандартных операций таблицы (
INSERT
, UPDATE
, DELETE
и SELECT
).
- Уровень логики: состоит из хранимых процедур, которые реализуют только бизнес-логику и получают доступ к уровню данных, используя только методы, описанные выше.
- Уровень представления. Состоит из веб-сервера, на котором выполняется код, который обращается к логическому уровню, выполняя только вызовы хранимых процедур.
Это вполне приемлемая модель, но с некоторыми компромиссами. Бизнес-логика реализована таким образом, что обеспечивает быстрый и легкий доступ к уровню данных и может позволить выполнять действия, которые должны были бы выполняться «сложным путем» с помощью уровня логики вне базы данных. От чего вы отказываетесь, это возможность легко перенести любой уровень на какую-то другую технологию и беззаботную реализацию (т. Е. Вы должны быть особенно осторожны, чтобы уровни не использовали средства, доступные в базе данных, но за пределами их определенных интерфейсов) ,
Приемлемы ли такие вещи и компромиссы, которые они приносят, в данной ситуации - это то, что вы и ваши коллеги должны определить, используя свое суждение.