Con l'aiuto di AOP, posso rimuovere il codice di registrazione dalla mia logica aziendale. Ma penso che possa essere usato solo per registrare cose semplici (vale a dire il metodo di registrazione entry / exit e i valori dei parametri).
Tuttavia, cosa succede se devo registrare qualcosa nella mia logica aziendale? per es.
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
}
Il precedente metodo di esempio potrebbe non essere abbastanza chiaro, quello che voglio mostrare qui è che il metodo dovrebbe essere trattato come l'unità più piccola dal punto di vista del dominio. Non dovrebbe essere diviso in parti più piccole.
È possibile spostare oltre 3 codici di registrazione fuori dal metodo? Qual è la migliore pratica per tale situazione?