Прояснение чистой архитектуры

Я читал это от дяди Боба:

http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html enter image description here

У меня есть несколько вопросов, чтобы уточнить:

  • Могут внешние круги ссылаться внутрь, пересекая несколько границ. Например, могут ли контроллеры обращаться к структурам данных в Entities?
  • Каковы различия между корпоративными бизнес-правилами и бизнес-правилами приложений. Например, каковы различия для чего-то вроде stackoverflow? Какими должны быть правила бизнес-приложений stackoverflow и бизнес-правила предприятия?
  • Есть ли пример кода, на который я могу ссылаться, в основном, ориентируясь на веб-приложения.

Спасибо

Ответ 1

  • Лучше всего, если круги не пересекают несколько границ. Знание должно быть ограничено.
  • Корпоративные правила - это правила, применимые к нескольким приложениям. Правила приложения специфичны для одного приложения. Существует много приложений, основанных на идее, и они имеют множество одинаковых бизнес-правил. Этими правилами были бы правила предприятия. Но есть только один переполнение стека. Правила, которые делают его уникальным, - это правила приложения.
  • Да, примеров много. Просто найдите "Примеры чистой архитектуры". Если у вас есть копия одной из двух моих книг: "Agile Software Development: Principles, Patterns and Practices" или "Agile Prinicples, Patterns and Practices in С#", то пример работы с зарплатой - хороший пример этой архитектуры.

Ответ 2

В дополнение к ответу Роберта Мартина, я бы хотел добавить.