SoC или монолитный код? - PullRequest
       67

SoC или монолитный код?

0 голосов
/ 17 января 2011

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

У меня есть один практический сценарий, когда SoC обычно занимает больше времени для обработки запроса пользователя. Например, предположим, что я работаю над сайтом в социальных сетях. Когда пользователь принимает приглашение, отправленное другим, мы обычно выполняем некоторую обработку, например, как показано ниже.

  1. Приглашение будет подтверждено. (InvitationRepository сделает это)
  2. Друг будет добавлен в мой список сетей. (FriendRepository сделает это)
  3. Сообщение электронной почты будет отслежено, и письмо будет отправлено другу. (EmailRepository сделает это)

В этом случае нам нужно подождать, пока мы выполним три запроса к базе данных (база данных где-то находится), и для сравнения другого сценария, где все в одном вызове базы данных с использованием монолитного кода, требуется много времени.

Можете ли вы предложить, какой из них будет хорошим в этом случае?

1 Ответ

0 голосов
/ 17 января 2011

Делай, что имеет смысл.Если SoC важно поддерживать в соответствии со стандартами приложений, найдите способы оптимизировать SoC или создать асинхронный процесс вместо синхронного, в котором все еще используется SoC.Если юзабилити перевешивает обходные пути SoC и SoC невозможны, тогда сделайте монолитную вещь, если нужно, в рамках создания архитектурного кошмара.

Лучшим решением не всегда является решение, обеспечивающее максимальную пропускную способность.В противном случае на страницах ASP.NET .aspx.cx были бы все проблемы, связанные с ними: бизнес-логика, доступ к базе данных, вызовы веб-сервисов и т. Д. Именно в этом случае многие классические приложения ASP были более десяти лет назад.

...