Slide 1

Slide 1 text

Notification e Result Pattern

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

O que são Design Patterns?

Slide 4

Slide 4 text

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?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Notification Pattern

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Result Pattern

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

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/

Slide 16

Slide 16 text

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