Dominando os Princípios SOLID: Exemplos práticos com Java

Поделиться
HTML-код
  • Опубликовано: 24 янв 2025

Комментарии • 45

  • @wilknisdeyvis5995
    @wilknisdeyvis5995 5 месяцев назад +5

    Que aula perfeita! Comecei a ler Arquitetura Limpa recentemente e logo nos primeiros capítulos tive dificuldade de entender SOLID. Mas esses exemplos práticos deixaram tudo mais claro. Obrigado!

    • @sandroramos1703
      @sandroramos1703  5 месяцев назад

      Fico feliz em te ajudar na sua jornada wilknis👊

  • @Andrey-br2ce
    @Andrey-br2ce Год назад +8

    Gostei do vídeo! Há poucos vídeos que abordem princípios como solid de forma prática, se puder trazer mais conceitos desse tipo, como por exemplo arquitetura limpa, de forma prática que nem fez nesse vídeo, iria adorar! Parabéns cara, continua.

    • @sandroramos1703
      @sandroramos1703  Год назад +2

      Show! Fico feliz que tenha curtido, em breve vou lançar uma série de vídeo aplicando arquitetura limpa na prática.

  • @joaopauloalcantaradasilva8823
    @joaopauloalcantaradasilva8823 4 месяца назад +1

    Umas das melhores explicações práticas a respeito do tema. Aula excelente. Obrigado, professor!!

    • @sandroramos1703
      @sandroramos1703  3 месяца назад

      @@joaopauloalcantaradasilva8823 valeu meu nobre!

  • @oadcavalcante
    @oadcavalcante 6 месяцев назад +2

    Um dos melhores vídeos sobre SOLID que já vi até hoje!

    • @sandroramos1703
      @sandroramos1703  6 месяцев назад

      Show Ader, fico feliz que tenha gostado!👊

  • @gabriellivieira8024
    @gabriellivieira8024 Год назад +2

    👏👏 Ótima aula professor!

  • @viniciusfranciscopradosilv2121
    @viniciusfranciscopradosilv2121 7 месяцев назад +1

    Parabéns Sandro. Ajudou bastante meu entendido deste assunto.

  • @henriqueramos6252
    @henriqueramos6252 Год назад +1

    Sempre no Padrão!!👏

  • @BrenoSDaros
    @BrenoSDaros 5 месяцев назад +1

    Pô cara, valeu mesmo
    Era exatamente o vídeo q eu tava procurando

  • @Gustavok2805
    @Gustavok2805 10 месяцев назад +1

    Ótimo video, deu pra entender muito bem

    • @sandroramos1703
      @sandroramos1703  10 месяцев назад +1

      Show gustavo! Fico feliz que tenha gostado

  • @henkel1474
    @henkel1474 3 месяца назад +1

    Bão demais!!

  • @eprogramar
    @eprogramar Год назад +2

    Ufa, ainda bem que vc resolveu o acoplamento de repository e e-mail dentro de processa pedido 😅
    Ainda bem que esperei até DIP pra ver vc resolvendo kkk
    Boa irmão, ótima aula 👏🏼👏🏼👏🏼

  • @Davi-da-Silva79
    @Davi-da-Silva79 3 месяца назад +1

    top das galaxias

  • @neresneres6083
    @neresneres6083 11 месяцев назад +1

    muito bom!!!

  • @itsduZAO
    @itsduZAO 8 месяцев назад +1

    Ótimo conteúdo, mano!

  • @ericocavalcanti710
    @ericocavalcanti710 7 месяцев назад +1

    Curti mt man, parabéns!

  • @JoaoVictor-vi5gs
    @JoaoVictor-vi5gs Год назад +1

    Parabéns pelo vídeo, ficou bem bacana!!! (até fiz um resumo aqui rsrsrs). Dando meus 2 centavos aqui, só achei que ficou um pouco em aberto na hora que tu falou sobre o princípio de substituição de Liskov, pelo exemplo utilizado mesmo. Um outro exemplo seria a aplicação do padrão NullObject. O objeto que representa o estado nulo da classe pai pode ser utilizado em todos os lugares onde uma instância da classe pai também poderia ser seria utilizada.

  • @julianosouza2716
    @julianosouza2716 Год назад +1

    Muito bom o conteúduo. Parabéns!!! Fiquei com uma dúvida no OCP? Digamos que eu já tenha ali minha classe de processar pedidos pronta, mês que vem eu precise incluir uma nova validação, um mês depois, eu preciso novamente incluir uma nova regra de negócio, terei de extendê-la a cada vez que precisar de uma regra nova?

    • @sandroramos1703
      @sandroramos1703  Год назад +1

      Sim, sempre cuidando para não ferir o LSP, uma vez que muito provavelmente essa sua classe filha da filha não conseguiria ser trocada pela classe "Processa Pedido", nesse cenário eu atuaria criando essa segunda alteração com base na classe pai "Processa Pedido" e não da classe filha.

  • @elacoda
    @elacoda 3 месяца назад +1

    qual é o video anterior?

    • @sandroramos1703
      @sandroramos1703  3 месяца назад

      @@elacoda o vídeo anterior falo da teoria do S.O.L.I.D, esse aqui ruclips.net/video/hdXI5gaLNuQ/видео.htmlfeature=shared

  • @spycall
    @spycall Год назад +2

    Gostei do vídeo, mas o OCP acho que não é aplicável, pois sempre terá que alterar alguma coisa. No seu exemplo, está lindo, porém na prática teríamos que alterar a classe que chama a classe ProcessaPedido para chamar a classe ProcessaPedidoComAlteracaoRequerida, teve alteração. E se a validação fosse no meio do método? A validação fosse depois do salvar e antes do enviarEmailConfirmação? Você teria que refatorar a classe ProcessaPedido separando o método processar em 3 métodos, um para a regra, outro para o envio de email e o processar chamando esses 2, isso para poder estender a classe e chamar os métodos em momentos diferentes. Ou seja, teve alteração na classe ProcessarePedido, mesmo que não mudou o comportamento, teve alteração e agora temos mais 2 métodos para testar.
    Não sei se entendi corretamente esse princípio, pois para mim não é aplicável.
    Agora uma dúvida: Se fosse necessário mais uma validação depois que a classe ProcessaPedidoComAlteracaoRequerida já estivesse em produção, teria que criar mais uma classe estendendo a classe ProcessaPedidoComAlteracaoRequerida?

    • @sandroramos1703
      @sandroramos1703  Год назад +1

      Você está totalmente certo, esse é um dos princípios que também busco evitar, na verdade, a maioria dos autores sugere composição sobre herança, geralmente o "usar" vai funcionar melhor do que o "ser"(da herança).
      Eu vou te falar, não utilizamos herança em quase lugar nenhum nas aplicações em produção que meu time gerencia, apenas em classes abstratas que contem as implementações concretas para que todas as classes "services" tenham as implementações concretas, mas do modo que o OCP propõe em nenhum lugar.
      Mas respondendo a sua pergunta, sim, criaria uma nova classe para adicionar essa funcionalidade, claro que cuidando para não ferir LSP. Uma maneira mais elegante seria criar essa nova classe herdando a classe inicial e não a filha.
      Obrigado pelo feedback e pelas dúvidas, espero tê-las sanado.

  • @faeldev-javinha
    @faeldev-javinha 7 месяцев назад +1

    Java e VSCode é meio estranho. 😅

    • @sandroramos1703
      @sandroramos1703  7 месяцев назад +1

      Hushasua depois de um tempo se acostuma

    • @faeldev-javinha
      @faeldev-javinha 7 месяцев назад

      @@sandroramos1703 O bom do VSCode é que da para usar o Copilot. Estava usando aqui e gostei. :D

  • @henriquesnowing8762
    @henriquesnowing8762 7 месяцев назад +4

    Que crime usar vscode

    • @sandroramos1703
      @sandroramos1703  7 месяцев назад +3

      Para qualquer coisa que normalmente vamos fazer(CRUD) o VS já resolve, usar IDE para esse tipo de coisa é matar uma formiga com um canhão... Para projetos gigantescos com ERP's e etc realmente faz sentido

    • @felipejanuario6881
      @felipejanuario6881 7 месяцев назад +1

      😂😂😂😂😂

  • @lucasborgesmarx7794
    @lucasborgesmarx7794 4 месяца назад +3

    Um dos melhores vídeos sobre SOLID que já vi até hoje!