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

āđāļŠāļĢāđŒ
āļāļąāļ‡
  • āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļĄāļ·āđˆāļ­ 26 āļŠ.āļ„. 2024
  • 🗒DescriçÃĢo:
    Neste vídeo, como combinado no vídeo anterior, exploramos os princípios SOLID, um conjunto de diretrizes fundamentais para a construçÃĢo de software de qualidade. É claro da melhor maneira possível, com uma boa mÃĢo na massa, essa serÃĄ uma base muito importante para podermos seguir com nossas implementaçÃĩes de arquitetura limpa.
    Se vocÊ ÃĐ um desenvolvedor em busca de aprimorar suas habilidades e elevar o nível do seu cÃģdigo, este ÃĐ o lugar certo!
    ðŸŽŊQuem Deve Assistir:
    Desenvolvedores de todos os níveis de experiÊncia que desejam aprimorar sua compreensÃĢo sobre como criar cÃģdigos mais flexíveis, escalÃĄveis e fÃĄceis de manter usando os princípios SOLID.
    🗃Link do repo do git:
    github.com/San...
    Inscreva-se agora para uma jornada de aprendizado sÃģlida em programaçÃĢo e eleve suas habilidades de desenvolvimento para o prÃģximo nível!
    Lembre-se de curtir o vídeo, compartilhar com seus colegas desenvolvedores e assinar o canal para mais conteÚdo incrível sobre programaçÃĢo e boas prÃĄticas de desenvolvimento.
    âœĻCrÃĐditos:
    Music from Uppbeat (free for Creators!):
    uppbeat.io/t/a...
    License code: N9EJIPP4TME0HIVC
    uppbeat.io/t/b...
    License code: R8J6D4P7GE4RPITV
    uppbeat.io/t/a...
    License code: YTKIQDXUTRTVJSWS
    uppbeat.io/t/i...
    License code: 1S4BDZVJINMFWXBO
    Creative Commons - Attribution-NoDerivs 3.0 Unported - CC BY-ND 3.0
    Downtown Glow by Ghostrifter & Devyzed
    Purple Dream by Ghostrifter bit.ly/ghostrifter-yt
    Music promoted by www.chosic.com...
    Vídeo de Distill: www.pexels.com...
    #java #solid #arquiteturalimpa #desenvolvimento #boracodar

āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ • 34

  • @wilknisdeyvis5995
    @wilknisdeyvis5995 13 āļ§āļąāļ™āļ—āļĩāđˆāļœāđˆāļēāļ™āļĄāļē +1

    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  8 āļ§āļąāļ™āļ—āļĩāđˆāļœāđˆāļēāļ™āļĄāļē

      Fico feliz em te ajudar na sua jornada wilknis👊

  • @oadcavalcante
    @oadcavalcante āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Um dos melhores vídeos sobre SOLID que jÃĄ vi atÃĐ hoje!

    • @sandroramos1703
      @sandroramos1703  āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Show Ader, fico feliz que tenha gostado!👊

  • @BrenoSDaros
    @BrenoSDaros 26 āļ§āļąāļ™āļ—āļĩāđˆāļœāđˆāļēāļ™āļĄāļē +1

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

    • @sandroramos1703
      @sandroramos1703  22 āļ§āļąāļ™āļ—āļĩāđˆāļœāđˆāļēāļ™āļĄāļē +1

      Show Breno! Tmj😎👊

  • @Andrey-br2ce
    @Andrey-br2ce 9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +5

    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  9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +2

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

  • @viniciusfranciscopradosilv2121
    @viniciusfranciscopradosilv2121 2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    ParabÃĐns Sandro. Ajudou bastante meu entendido deste assunto.

    • @sandroramos1703
      @sandroramos1703  2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Show vinicius!👊

  • @henriqueramos6252
    @henriqueramos6252 9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Sempre no PadrÃĢo!!👏

  • @gabriellivieira8024
    @gabriellivieira8024 9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    👏👏 Ótima aula professor!

  • @Gustavok2805
    @Gustavok2805 5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Ótimo video, deu pra entender muito bem

    • @sandroramos1703
      @sandroramos1703  5 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Show gustavo! Fico feliz que tenha gostado

  • @itsduZAO
    @itsduZAO 3 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Ótimo conteÚdo, mano!

    • @sandroramos1703
      @sandroramos1703  3 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Valeu meu nobre!

  • @eprogramar
    @eprogramar 9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +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 👏🏞👏🏞👏🏞

    • @sandroramos1703
      @sandroramos1703  9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      😂😂 Valeu meu nobre!

  • @ericocavalcanti710
    @ericocavalcanti710 2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Curti mt man, parabÃĐns!

    • @sandroramos1703
      @sandroramos1703  2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Show Érico! Tmj 👊ðŸŧ

  • @neresneres6083
    @neresneres6083 6 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    muito bom!!!

    • @sandroramos1703
      @sandroramos1703  6 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Show! Fico feliz que tenha gostado!

  • @JoaoVictor-vi5gs
    @JoaoVictor-vi5gs 9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +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.

    • @sandroramos1703
      @sandroramos1703  9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Boa! Ótimo complemento, obrigado

  • @julianosouza2716
    @julianosouza2716 9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +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  9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +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.

  • @spycall
    @spycall 7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    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  7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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.

  • @rafaelmagalhaesguedes579
    @rafaelmagalhaesguedes579 2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Java e VSCode ÃĐ meio estranho. 😅

    • @sandroramos1703
      @sandroramos1703  2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      Hushasua depois de um tempo se acostuma

    • @rafaelmagalhaesguedes579
      @rafaelmagalhaesguedes579 2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

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

  • @henriquesnowing8762
    @henriquesnowing8762 2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +3

    Que crime usar vscode

    • @sandroramos1703
      @sandroramos1703  2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      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 2 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      😂😂😂😂😂