Executando verificação de segurança...
5

Valeu demais pelo feedback, e ótimo que você levantou esses dois pontos — eles realmente ficaram como brechas no artigo.

  • Sobre logs:
    Uma boa abordagem é usar Domain Events.
    Você levanta o evento dentro da entidade ou aggregate (PaymentApproved, CustomerCreated, etc.) e depois trata isso num listener desacoplado que pode fazer o log, mandar alerta, ou qualquer outro efeito colateral.

A vantagem é que o domínio continua limpo — sem saber que existe ILogger — e você ainda ganha observabilidade.
Tô considerando escrever um artigo só sobre Domain Events, e esse tópico com certeza entra lá.

  • Sobre exceções no domínio:
    Esse é outro papo bom.
    A minha visão: exceção é pra erro inesperado, não pra fluxo alternativo.
    Se um pagamento não pode ser aprovado por causa de uma regra de negócio, o ideal é retornar um Result ou algo semelhante.
    Isso deixa o código mais funcional, mais testável e evita dependência do try/catch como mecanismo de controle de fluxo.

Tem várias libs que ajudam nisso: OneOf, LanguageExt, FluentResults, entre outras. Mas mesmo sem lib, um Result simples já resolve bem.

Valeu pelo comentário e por puxar esses temas — são os próximos tópicos naturais da série.
Um abraço! 👊🏼

Carregando publicação patrocinada...