За допомогою AOP я можу вилучити код журналу зі своєї логіки бізнесу. Але я думаю, що його можна використовувати лише для реєстрації простих речей (тобто методів входу / виходу методу входу та виходу та параметрів).
Однак що робити, якщо мені потрібно щось записати у свою ділову логіку? напр
public void SomeDomainMethod(string id)
{
//Get user by Id
User user = Users.Get(id);
if (user == null)
{
Log.Warn("user is not existed"); //<----------------- Log A
throw new InvalidOperationException("user is not existed");
}
//Step 1
while(true)
{
//do something
}
Log.Info("Step 1 is completed"); //<----------------- Log B
//Step 2
while(true)
{
//do something
}
Log.Info("Step 2 is completed"); //<----------------- Log C
}
Вищеописаний метод вибірки може бути недостатньо зрозумілим, що я хочу тут показати, що цей метод слід розглядати як найменший одиницю з точки зору домену. Його не слід ділити на більш дрібні шматки.
Чи можливо перемістити вище 3 коду входу з методу? Яка найкраща практика для такої ситуації?