.NET - A MELHOR FORMA DE GERENCIAMENTO DE ERROS | DOTNET | ONEOF

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 ธ.ค. 2024

ความคิดเห็น • 50

  • @jessesantos7679
    @jessesantos7679 หลายเดือนก่อน +1

    só o ponto sobre as extensions da outra camada já valeu o like

  • @JulioCesar-yy3dk
    @JulioCesar-yy3dk หลายเดือนก่อน +1

    Excelente vídeo Cristian, muito útil.
    Explicação muito clara.
    Parabéns.

    • @cristianwilliamdev
      @cristianwilliamdev  29 วันที่ผ่านมา

      Valeu demais mano, fico feliz que curtiu!

  • @EduardoOliveira-zg2lj
    @EduardoOliveira-zg2lj 28 วันที่ผ่านมา

    Chegando de voadora no like!!! O conteúdo do cara é top!!

  • @zaqueudovale852
    @zaqueudovale852 4 หลายเดือนก่อน +1

    Muito bom, refatorei todo meu projeto de exceptions para essa abordagem.

  • @lindermannla
    @lindermannla 4 หลายเดือนก่อน +1

    Bah Cristian venho tentando explicar isso a anos para os DEVs com que trabalho/trabalhei e é difícil convencer o pessoal! Excelente vídeo!

  • @OQueLucas
    @OQueLucas 4 หลายเดือนก่อน +1

    Aula sensacional, mt boa explicação, ia aplicar o Exception Filter no projeto que tô trabalhando que aprendi num curso, mas essa abordagem achei mt melhor, só pra diminuir a controller talvez de pra fazer uma função recebendo os erros e tratando lá pra não tratar mais de 1 erro na controller e ficar enorme

    • @cristianwilliamdev
      @cristianwilliamdev  4 หลายเดือนก่อน +1

      Sim mano, eu mesmo tenho funcoes que retornam o status code com base no Type do erro, boaaaa!

  • @jholmundo
    @jholmundo 4 หลายเดือนก่อน

    Cara vc manda muito bem, Ótima didática, Gostara sim saber mais sobre o inpicit operator

  • @juniorzucareli
    @juniorzucareli 4 หลายเดือนก่อน +1

    parabéns pelo vídeo!
    tenho algumas considerações com relação ao seu comentário de que validação de regra de negócio não deve jogar exceção... neste caso que você mostrou do vídeo, eu concordo com a abordagem.
    Mas pensando em uma classe de domínio mais rica, na minha visão, deveria ser utilizado exception no construtor, e nos métodos dentro da classe.
    Você colocou as regras dentro do service, deve ter feito isso até para ter um exemplo para mostrar o result pattern. Mas no meu mundo ideal, essa regra de não criar carro com a letra "M", deveria estar dentro do construtor da classe Car, não no service, e na camada da controller, teria um data annotation, ou alguma validação para não permitir criar carro com a letra m, e ali sim teria um retorno amigável.
    Penso que em classe de domínio, deve ter uma proteção para não permitir criar um objeto em um estado inválido, então de dentro da classe de domínio eu jamais retornaria um result, até porque isso obrigaria quem ta chamando a classe a sempre ficar colocando ifs, e se por acaso alguém não colocar um if, e logo após vier um ctx.SaveChanges(), então foi persistido o Car no DB em um estado invalido.

  • @andregenari6590
    @andregenari6590 4 หลายเดือนก่อน

    Muito bom Christian, não usar o try catch e nem um monte de if sujo ja é otimo, boa dica do OneOf.

  • @brunobentogoncalves5526
    @brunobentogoncalves5526 4 หลายเดือนก่อน +2

    Que aulaaa tooppp, só fiquei com uma dúvida, se as classes de implementações das interfaces são internal, como faria para testes unitários?

    • @wellingtonclimaco
      @wellingtonclimaco 4 หลายเดือนก่อน +2

      Fiquei com a mesma dúvida, não encontrei nenhuma saída pra isso.

    • @cristianwilliamdev
      @cristianwilliamdev  3 หลายเดือนก่อน +1

      Pesquise por InternalVisibleTo, é uma forma de deixar visível apenas para o projeto de teste mano

  • @rodrigol3onardo
    @rodrigol3onardo 4 หลายเดือนก่อน +1

    Fala meu amigo Cris, aproveitando a sua informação sobre a classe ser internal, gostaria de reforçar também a necessidade de tornar o serviço que é injetado no container como sealed, para que nenhum pé de pano herde ele num momento de epifania e queira extender uma classe provida pela DI hahaha

    • @cristianwilliamdev
      @cristianwilliamdev  4 หลายเดือนก่อน

      @@rodrigol3onardo hahahaahah boa lembrada mano 😂😂😂

  • @robotinike
    @robotinike 4 หลายเดือนก่อน

    Muito bom mesmo.

  • @_heydav
    @_heydav 4 หลายเดือนก่อน

    Muito bom, já deixei meu like!!!
    Manja de SignalR? Ultimamente estou com algumas dificuldades pra manter a conexão aberta seria bom um vídeo sobre pra ver se tenho alguns insights.

    • @awillmoto7876
      @awillmoto7876 4 หลายเดือนก่อน

      explica melhor o problema. Quando cai a conexão? Onde e quando ela é feita? Dentro ou fora de componentes de apresentacao? Conexão com Signalr não é para cair não. Ele tem até protocolo de ping e pong para manter a conexão ativa em caso de inatividade. Uma coisa que pode ser também é no caso de ficar inativo por conta de IDle no browser, aí precisa configurar reconexão automática e a estratégia de reconexão. Sem mais detalhes fica dificil entender seu caso.

  • @joaovitormedeiros2690
    @joaovitormedeiros2690 4 หลายเดือนก่อน +1

    Por acaso você tem algum curso, ou somente pelo you tube? Sua didática é muito boa.

    • @cristianwilliamdev
      @cristianwilliamdev  3 หลายเดือนก่อน

      Ainda não tenho curso mano, já que chega 👏🏻👏🏻

  • @nandoandrade34
    @nandoandrade34 4 หลายเดือนก่อน

    Eu uso OneOf em prod e gosto muito, só tive problemas com o uso do Switch, fora isso ficou bem clean o codigo ( livre de algumas exception)

  • @natancolleoni
    @natancolleoni 4 หลายเดือนก่อน +1

    Cristian, quando trabalhamos com response headers, precisamos expor eles para que o client consiga acessá-los, por conta do CORS. Recentemente tive que incluir isso no arquivo de configuração (Program.cs) de uma aplicação minha, porém queria saber como você aborda isso geralmente?

  • @lindermannla
    @lindermannla 4 หลายเดือนก่อน +1

    Cristian tem uma maneira de fazer o enum retornar o nome e não o número na serialização, procura por JsonStringEnumConverter

    • @DiogoLScarmagnani
      @DiogoLScarmagnani 4 หลายเดือนก่อน +1

      Muito boa essa dica, amigo. Obrigado.

  • @nivaldobrasil
    @nivaldobrasil 4 หลายเดือนก่อน

    muito bom

  • @gilmar69047
    @gilmar69047 4 หลายเดือนก่อน

    Não conhecia essa biblioteca... estou usando uma outra estratégia, devolvendo um objeto container que tem duas propriedades, Data e Error. Na controller verificava qual das duas propriedades trouxe valor para retornar o status code adequado

  • @DenisioRodrigues
    @DenisioRodrigues 4 หลายเดือนก่อน

    Muito bom essa metodologia. Por mais vídeos assim!
    Uma dúvida: Quais os ponsotos positivos de usar OneOf ao inves de Fluent Validation?

    • @nandoandrade34
      @nandoandrade34 4 หลายเดือนก่อน +2

      Na prática você utilizaria em conjunto, ao invés de lançar exceptions (exceptions são caras...) para retornar os erros de validação do FluentValidation você poderia retornar os um TSuccess (o caminho feliz) ou um TError (os errors de validação)

    • @DenisioRodrigues
      @DenisioRodrigues 4 หลายเดือนก่อน

      @@nandoandrade34 Valeu!

  • @sandersonbarbosatorres
    @sandersonbarbosatorres 4 หลายเดือนก่อน +1

    show de bola, parabens..

  • @mateusantonio8912
    @mateusantonio8912 4 หลายเดือนก่อน +1

    Como eu definiria o retorno desse endpoint? No projeto em que estou trabalhando na assinatura de todo endpoint tem o objeto que é retornado por esse endpoint. Como faria nesse caso?

    • @cristianwilliamdev
      @cristianwilliamdev  4 หลายเดือนก่อน

      @@mateusantonio8912 provavelmente está usando controllers ao invés de minimal, nesse caso, usei minimal, ai todo retorno vem do Results, que define qual o código de status code de retorno… não sei se consegui te ajudar.

    • @OQueLucas
      @OQueLucas 4 หลายเดือนก่อน

      Acredito que vc se refere ao payload que vai vir que podemos visualizar no swagger, seria isso?

    • @OQueLucas
      @OQueLucas 4 หลายเดือนก่อน

      Se for esse o caso, poderia usar isso acima da controller em questão, pra cada tipo de resposta que vc pretende retornar
      [ProducesResponseType(typeof(ResponseActivityJson), StatusCodes.Status201Created)]
      [ProducesResponseType(typeof(ResponseErrorsJson), StatusCodes.Status400BadRequest)]
      [ProducesResponseType(typeof(ResponseErrorsJson), StatusCodes.Status404NotFound)]

    • @mateusantonio8912
      @mateusantonio8912 4 หลายเดือนก่อน

      @@OQueLucas No meu caso não utilizamos essas anotações "ProducesResponseType", a gente só define o que vai ser retornado na assinatura do método.
      Exemplo:
      [HttpPost]
      public async Task ValidateDocument([FromBody] string Document)
      Nessa situação como eu faria pra definir que esse endpoint pode retornar um DocumentResultModel Ou um ErrorResultModel?

  • @juniorodrigues8198
    @juniorodrigues8198 4 หลายเดือนก่อน +1

    Fala, Cristian. Deixa eu aproveitar pra perguntar quanto você paga na licença anual do rider? Eu tenho free por conta da faculdade mas quero saber se vale a pena mantê-lo $$

    • @cristianwilliamdev
      @cristianwilliamdev  4 หลายเดือนก่อน +1

      @@juniorodrigues8198 15 dólares mano, acho que vale a pena manter se não usa o Windows para .Net

    • @juniorodrigues8198
      @juniorodrigues8198 4 หลายเดือนก่อน

      @@cristianwilliamdev Obrigado, é que estou pensando em começar a usar linux pra me ambientar em um novo SO. E a longo prazo ir para o MAC

  • @lnunes2255
    @lnunes2255 4 หลายเดือนก่อน

    ae cris fala de testes no angular

  • @AnndreJunior
    @AnndreJunior 4 หลายเดือนก่อน

    E se eu tiver uma entidade de domínio, eu posso lançar uma exceção por lá caso uma regra de negócio não seja atendida, pegar ela no caso de uso e retornar assim?

  • @alisonrodrigues3087
    @alisonrodrigues3087 4 หลายเดือนก่อน +1

    Qual sua setup de fonte para os comentários ficarem assim?

    • @cristianwilliamdev
      @cristianwilliamdev  3 หลายเดือนก่อน

      Tem um vídeo no canal pra isso brow, massa demais

  • @carlossouza5478
    @carlossouza5478 4 หลายเดือนก่อน +1

    muito legal!!

  • @Sousa22ko
    @Sousa22ko 4 หลายเดือนก่อน

    N sei se daria um bom topico para video mas sempre tive duvidas sobre a melhor forma de lidar com dependencias no npm. Ja tive problemas de pegar um projeto (sustentação) com 2 libs que cada uma usava uma versão diferente do angular core e chegou um ponto que ficou insustentavel (peguei o projeto no meio do caminho, não sei se no meio dele alguem atualizou a versão do angular e não se atentou a isso), e o projeto quebrou e não sabia nem como lidar com isso. Existe alguma "boa pratica" para gerenciar dependencias ou vc vai só adicionando as versões mais atuais e deixa o npm lidar com tudo isso? e quando da um conflito desses oque fazer?