Описание тега onion-architecture

*Onion Architecture* - это программная архитектура, предложенная Джеффри Палермо. Это похоже на * гексагональную архитектуру * (порты и адаптеры), предложенную Алистером Кокберном.

Джеффри Палермо предложил Луковую аркитектуру. Это похоже на гексагональную архитектуру Алистера Кокберна или на порты и адаптеры.

Фундаментальная мотивация подхода - избежать межуровневых зависимостей, обычно связанных с подходом многоуровневой архитектуры. Это достигается за счет размещения всей инфраструктуры, включая базы данных, за пределами проблемной области.

По словам Джеффри Палермо:

Общая философия луковой архитектуры состоит в том, чтобы держать вашу бизнес-логику и модель в середине (ядре) вашего приложения и выдвигать ваши зависимости как можно дальше наружу.

Таким образом, проблемная область полностью не зависит от необходимой инфраструктуры (тестирование, базы данных, безопасность и т. Д.). Например, это означает, что тестирование доступа к базе данных может быть выполнено без реальной базы данных.