Разделение интересов (SoC) предлагает разбить ваше приложение на определенные функциональные блоки таким образом, чтобы каждый блок удовлетворял только потребность одной задачи.
У меня есть один практический сценарий, когда SoC обычно занимает больше времени для обработки запроса пользователя. Например, предположим, что я работаю над сайтом в социальных сетях. Когда пользователь принимает приглашение, отправленное другим, мы обычно выполняем некоторую обработку, например, как показано ниже.
- Приглашение будет подтверждено. (InvitationRepository сделает это)
- Друг будет добавлен в мой список сетей. (FriendRepository сделает это)
- Сообщение электронной почты будет отслежено, и письмо будет отправлено другу. (EmailRepository сделает это)
В этом случае нам нужно подождать, пока мы выполним три запроса к базе данных (база данных где-то находится), и для сравнения другого сценария, где все в одном вызове базы данных с использованием монолитного кода, требуется много времени.
Можете ли вы предложить, какой из них будет хорошим в этом случае?