Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Notification + Result Pattern

Notification + Result Pattern

Ana Manzan

March 18, 2020
Tweet

More Decks by Ana Manzan

Other Decks in Programming

Transcript

  1. Notification e
    Result Pattern

    View Slide

  2. Ana Manzan
    MG <3 SP
    Desenvolvedora .NET na Dextra Digital
    .NET – 2012 a 2020
    Apoiadora do Developers-BR
    @anamanzandev
    anamanzan.dev
    [email protected]

    View Slide

  3. O que são
    Design Patterns?

    View Slide

  4. Design Patterns
    • Design Patterns, também conhecidos em português como
    Padrões de Projeto, são soluções (que já foram testadas)
    para determinados problemas que são recorrentes no dia-a-
    dia do desenvolvimento de software orientado a objetos
    • Eles trazem mais flexibilidade, elegância e reusabilidade para
    o nosso código.
    • Quantos de nós, ao nos depararmos com um problema, não
    tivemos a sensação de já ter resolvido este mesmo problema
    antes?

    View Slide

  5. View Slide

  6. Notification Pattern

    View Slide

  7. O que é Notification?
    • “Notification é um objeto que coleta informações sobre erros
    e outras informações na camada de domínio, e leva essas
    informações para a camada de apresentação”
    • É considerado um Design Pattern

    View Slide

  8. Motivação
    • Prevenir o lançamento (desnecessário) de exceções

    View Slide

  9. Vantagens X Desvantagens
    • Vantagens
    • Permite que retornemos todos os erros para o usuário corrigir de
    uma vez só
    • É mais rápido que lançar exceptions
    • Desvantagens
    • É (levemente) mais complexo

    View Slide

  10. Result Pattern

    View Slide

  11. O que é Result Pattern?
    • Também conhecido como Operation Result, Service Result
    • Não possui um nome “oficial” ainda
    • É um padrão utilizado para comunicar o sucesso ou a falha
    de uma determinada operação

    View Slide

  12. Motivação
    • Permitir que uma operação retorne um resultado complexo,
    com:
    • Se a operação foi bem sucedida ou não
    • O resultado da operação, se bem sucedida
    • Os erros ao executar a operação, se não for bem sucedida
    • Com isso, padronizamos o resultado de todas as operações
    de uma API, por exemplo

    View Slide

  13. Vantagens X Desvantagens
    • Vantagens
    • É mais explícito
    • É mais rápido que lançar exceptions
    • Desvantagens
    • É (levemente) mais complexo

    View Slide

  14. View Slide

  15. Referências
    • https://martinfowler.com/eaaDev/Notification.html
    • https://martinfowler.com/articles/replaceThrowWithNotification.html
    • https://www.wellingtonjhn.com/posts/n%C3%A3o-lance-exceptions-em-seu-
    dom%C3%ADnio-use-notifications/
    • https://gago.io/blog/2019-04-28-notification-pattern/
    • https://alexdunn.org/2019/02/25/clean-up-your-client-to-business-logic-
    relationship-with-a-result-pattern-c/
    • https://www.forevolve.com/en/articles/2018/03/19/operation-result/

    View Slide

  16. Obrigada!
    [email protected]
    Demo https://github.com/anamanzandev/Validations

    View Slide