Моя команда обсуждает будущее направление, мы берем наши проекты. Половина команды верит в чистую 3-уровневую архитектуру в то время как другая половина пользы 2-уровневая архитектура.
Предположения проекта:
3-уровневая польза команды:
2-уровневая польза команды:
Таким образом, это - высокоуровневый аргумент. Какие соображения мы должны принять во внимание? Какие события Вы имели с любым подходом?
Есть время и место для предварительного проектирования, и это может сделать только опытный архитектор, который знает все тонкости вашего проекта. Что касается меня, если есть какие-то сомнения или все может пойти по другому пути, я понимаю это так:
YMMV.
Я не верю, что две стороны на самом деле так далеко друг от друга. Мне кажется, что двухуровневый подход предполагает больший упор на презентацию и желание, чтобы сервисы делали всю тяжелую работу. У сервисов, вероятно, будет еще один уровень доступа к данным, так что это еще один трехуровневый подход. Это также то, что мы предпочитаем в моей работе, потому что внесение изменений в сервисы часто не требует каких-либо изменений для потребителей, если мы поддерживаем тот же интерфейс.
Тем не менее, я думаю, что это должно быть намного ниже в списке приоритетов, о которых следует беспокоиться. Многоуровневый подход сам по себе не поможет. Важно то, как эти уровни построены. Я считаю, что для всех гораздо важнее согласовать методы кодирования. Такие вещи, как внедрение зависимостей, разделение проблем, инверсия управления, модульное тестирование, имитация и т. Д. Эти вещи намного важнее, чем забота о том, сколько уровней существует. Как только они будут размещены, ярусы последуют за ними естественным образом.