POR ISSO SEU CÓDIGO ESTÁ SEMPRE BAGUNÇADO! (Use Inversão de Controle e Injeção de Dependências)

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024
  • 🧠 𝗘𝗦𝗧𝗨𝗗𝗘 𝗡𝗔 𝗔𝗟𝗨𝗥𝗔 → codft.me/alura
    Se você costuma pegar código no GitHub ou no próprio Stack Overflow é preciso organizar seu módulos para utilizar essas adições, o que chamamos de dependências. Ensinamos a aplicar a Inversão de Controle e a Injeção de Dependências e também a refatorar um código para usar esses princípios .
    📝 𝗟𝗶𝗻𝗸𝘀 𝗖𝗶𝘁𝗮𝗱𝗼𝘀
    → SOLID: • SOLID (O básico para v...
    🎙️ Compilado Podcast
    → RUclips: codft.me/canal...
    → Spotify: codft.me/compi...
    → Newsletter: compilado.codi...
    🔗 Mais links do Código Fonte TV
    → codigofonte.tv
    #DesignPatterns #SOLID #CleanCode
    #MãoNoCódigo74

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

  • @novasideias531
    @novasideias531 Год назад +45

    Eu não sei vocês, mas depois de 5 anos de trabalho na área, eu sofro de uma síndrome, eu uso boas práticas, sei olhar e dizer se é ou não é uma boa prática, mas NÃO faço ideia dos nomes dos conceitos kkkkkkkkkkkkkkkkkk
    Praticamente tudo que aprendi, aprendi no dia a dia, trabalhando com meu chefe que tem 15 anos de experiência e é um nerd, então eu aprendi observando como ele abordava os problemas, eu entrei no vídeo achando que iria aprender algo novo, mas percebi que sempre faço isso quando vou desenvolver, sempre tento deixar genérico e reutilizável o código e isso passa pela inversão de controle e injeção de dependência, dessa forma nos novos desenvolvimentos tem impactos mínimos em códigos existentes.

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

      Vc não está sozinho 😂

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

      Eu to aqui só pra decorar o nome daquilo que já sei kkkkk

    • @MarcosDev968
      @MarcosDev968 8 месяцев назад

      Faço das suas palavras as minhas, pois muita coisa que o Gabriel fez, eu faço simplesmente por osmose, por ter aprendido que é uma boa maneira de se organizar código, além de achar mais bonito também kkkkkk. Depois de um tempo que fui pegando realmente os nomes dos conceitos e refinando o conhecimento.

    • @svorckelable
      @svorckelable 2 дня назад

      Mas é bom olhar os nomes e principalmente as ideias dos conceitos. Sempre que se tem um rebanho e importante saber os nomes que você mesmo deu a seus bois kkk

  • @luizfelipe-ek8tc
    @luizfelipe-ek8tc Год назад +44

    Seria legal para complementar esse vídeo, fazer testes nos módulos, pq geralmente uma coisa que o desacoplamento trás para nos programadores é a facilidade em escrever testes e hoje em dia os testes é algo muito exigido pelo mercado.

    • @nandomax3
      @nandomax3 Год назад

      Aí ó, ótimo projeto pra você por no seu github

  • @raizdesamauma8607
    @raizdesamauma8607 Год назад +7

    Excelente demonstração, com exemplos reais e de fácil entendimento! Seria incrível ter mais outros Mão no Código com outros Design Patterns. Muito agradecido por tantos conhecimentos compartilhados, sempre!

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

      Ficamos felizes que você gostou do conteúdo. Nós temos mais vídeos sim, sobre o tema. Obrigado por nos acompanhar. Grande abraço

  • @lucasdelima6500
    @lucasdelima6500 Год назад +5

    Eu estava desenvolvendo meu projeto ontem, e nele preciso usar esses princípios. E justamente ontem que minha ficha caiu sobre como usar! e agora esse vídeo fresquinho veio pra reforçar! Muito bom hein!

  • @MarcosDev968
    @MarcosDev968 8 месяцев назад

    Adorei a aula sobre Inversão de Controle e Injeção de Dependência. É uma prática que ajuda demais na hora de fazer código, deixa o mesmo mais dinâmico e fácil de se consertar no futuro. Confesso que fazer isso no JS é um pouco chato, pois precisa ter um pouco de paciência para ajustar, embora isso seja facilitado aos montes no C# (linguagem que atualmente utilizo mais). Parabéns pelo conteúdo, que é mais do que excelente. Que venham mais desse tipo, e um grande abraço aos dois 😃

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

    No Angular esse e um dos principais conceitos na construção dos projetos que as pessoas desconsideram bastante.
    Parabéns pelo video excelente.

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

    Estou estudando pela alura inclusive, esses padrões de projetos. Antes ficava pensando como fazer essa implementação em projetos para não ter um code tão verboso, quando o método dentro de uma classe depende de outro para renderizar, no projeto que estou desenvolvendo declarei uma tabela que tinha que renderizar ao fazer a busca pelos dados e atualizar no index com uma div e foi instanciado dentro do construtor para renderizar o modelo de tabela de negociações.
    Mais com certeza com esse vídeo tive mais entendimento sobre os padrões de projetos.

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

    Vídeo sensacional!!! Conteúdo bom, direto e com ótima didática!!!

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

    Além da qualidade do conteúdo dos vídeos, você são um casal muito simpático

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

    Excelente video justamente quando estou comecando a ver esse conteudo

  • @sinvalfelisberto
    @sinvalfelisberto Год назад +4

    Esse é o tipo de conhecimento que separa o programador Júnior do Plano/Senior.
    Implementação de apis usando as melhores práticas!

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

      Depois que acostuma com esse tipo de implementação é um caminho sem volta. 😊

    • @nandomax3
      @nandomax3 Год назад

      Eu espero que um júnior já saiba fazer isso depois de poucos meses no time. Pelo menos em Java é impensável você trabalhar sem injeção de dependência

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

    Amo esse tipo de video, muito útil e explicativo!

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

    Até agora a melhor explicação de DI && DIP q já vi!

  • @matheusavila9677
    @matheusavila9677 Год назад +4

    Esse vídeo veio numa hora excelente pra mim!

  •  Год назад +5

    Vcs tinham que fazer um curso sobre refatoração! Acho que seria um diferencial, ainda mais se for em Python. Vi pouca coisa neste sentido! Só aqui neste canal. Obrigado pelo rico conteúdo!

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

      Refatoração é algo tão amplo. Meio que aprendemos a fazer fazendo. Eu sigo o protocolo:
      - cria testes para o que vai ser refatorado
      - refatora
      - teste deve passar, se não deve arrumar a refatoração
      - depois refatoro o teste pra ficar mais bonito e organizado

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

    Um video mais avançado pois poucos devs dominam. Excelente

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

    Ótimo conteúdo como sempre!

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

    Sempre bom lembrar das terminologias e nome dos conceitos, utilizo no dia a dia, mas se alguém pergunta-se diria q não lembrava o q era essa inversão kk

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

    Vídeo bem explícito, e conteúdo bem alinhado com as outras referências. Muito bom.

  • @antoniomarcos5664
    @antoniomarcos5664 Год назад +3

    Um dos paradigmas que deve ser compreendido é começar pelos testes. A medida que o refactoring for sendo adicionado, ficará presente o porquê do princípio da inversão de dependência e como realizá -la, seguindo uma abstração contextualizada com o negócio. A maioria dos design patterns primam neste princípio e de uma forma ou de outra, dependendo da natureza do pattern, aplicam técnicas com o objetivo de desacoplar a solução. Iniciando pelos testes a abstração é percebida naturalmente e não é uma viagem maionese abstrata, com exageros que muitas vezes é o que acontece. Dizem que os testes demoram e atrapalham a codificação mas não é verdade. Aplicando-se corretamente, teremos um código bem desenvolvido e coberto pelos testes ao mesmo tempo. Desta forma o teste tem paralelismo com a solução e ambos ficariam prontos simultaneamente. E seriam consistentes por seguirem a forma do problema. Aplicar patterns conforme a necessidade de design pedirá é primordial para não ferir o SOLID.

  • @LeonnelRed
    @LeonnelRed Год назад +3

    Caramba agora entendi de fato a Injenção de dependência. Fui ver o vídeo, pensei, refleti e entendi. A interface vai executar o código do objeto parametrizado caso tiver duas ou mais implementações da Interface!

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

      Aeeee! Ficamos felizes em saber que nossa explicação te ajudou.

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

    Os vídeos de vocês são ótimos... sempre que posso vejo os vídeos, a didatica e como vocês repassam o conhecimento e informações é maravilhoso.. sucesso a vocês

  • @vitorbrussolo9651
    @vitorbrussolo9651 Год назад +5

    Video maravilhoso, uma duvida que eu estava desde quando comecei no mundo da programação (as coisas serem parecidas no enunciado mais ter propósitos diferentes)

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

    Ótimo video!! Ontem mesmo eu estava lendo "Clean Code" do Robert C. Martin, e o vídeo ajudou muito a fixar o assunto.

  • @JoseCarlosNF
    @JoseCarlosNF Год назад

    Que vídeo maravilhoso 👏. Espero poder aprender sobre outros designs com vcs tbm

  • @joseitojunior1749
    @joseitojunior1749 Год назад

    Show!!

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

    Excelente exemplo, parabéns pelo vídeo

    • @codigofontetv
      @codigofontetv  Год назад

      Muito obrigado Rafael! Seu apoio nos ajuda demais. Grande abraço!

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

    Perfeito!! Estava justamente estudando isso!!

  • @andradegilmar
    @andradegilmar Год назад

    Muito bom, simples e didático!

  • @svorckelable
    @svorckelable 2 дня назад

    Para quem programa em P.O.O, mas analisa o Designer Pattern pelo prisma do código de baixo nível, nada mais é, do que fazer chamadas para um função única que faz a autenticação.

  • @jeff_araujo_dev
    @jeff_araujo_dev Год назад

    Curti bastante essa aula, aprendi muito e espero ver testes unitários usando esses designer patterns *_*

  • @rodrigomedeiroslehnemann7129
    @rodrigomedeiroslehnemann7129 Год назад

    Excelente vídeo turma, seria muito interessante um vídeo sobre a SGDK, uma lib de C para criação de Jogos para Mega Drive e todas as coisas que essa lib consegue criar em um processador Motorola 68k.

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

    Excelente!

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

      Oi Alvaro! Muito obrigado pelo elogio, ficamos honrados.

  • @snoiwp
    @snoiwp Год назад

    Faz um vídeo sobre as tecnologias por trás do jogo Terraria, por favor

  • @fernandocarmo532
    @fernandocarmo532 Год назад

    Há uns anos atrás, ter sido jogado de paraquedas num projeto Spring sem nunca ter programado absolutamente nada em Java a nível empresarial me ensinou muito sobre esses princípios. Dou risada lembrando da minha frustração tentando explicar pro meu TL que eu não tava entendendo como que a classe dependente tava chamando o código da classe certa se ela era do tipo de uma interface XD

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

    Não usou o decorator do ts não vale kkkk! Como o Luiz Felipe falou, e já vou dando o reforço, um grande benefício vai ser notado nos testes. Ainda estou aprendendo a andar nesse universo da programação, mas esse é um assunto que tem me despertado grande interesse.

  • @arturcortez5555
    @arturcortez5555 Год назад

    Sensacional!!!

  • @rafaelkontein2683
    @rafaelkontein2683 Год назад

    Seria legal também um video sobre Kotlin KMM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • @rodrigosouza6548
    @rodrigosouza6548 7 месяцев назад

    No próximo vídeo, gostaria de ver a Vanessa codando. É sempre o Gabriel, hahaa

  • @MarceloFirmino85
    @MarceloFirmino85 Год назад

    Se eu tivesse tido um professor tipo o Gabriel, eu estaria muito acima hoje.

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

    O pessoal fala que java é verboso, mas pra fazer isso ai do video em java voce gasta muuuuuito menos esforco. Acho muito legal que pro mundo java codar sem injeção de dependência é um pecado

  • @Scott_Redfield
    @Scott_Redfield Год назад

    O resultado da pesquisa vai sair quando?

  • @BenjamimDenis
    @BenjamimDenis Год назад

    inserAdjacent*(html, text, element)

  • @felipejre
    @felipejre Год назад

    Não entendi nada, mas é isso aí mesmo

  • @LucasRosinelli
    @LucasRosinelli Год назад

    Obrigado pelo vídeo pessoal. Muito bom!
    Juro que quando a Vanessa começou a falar no 4:17 eu achei que ela ia dizer: "Desculpa que eu tô meio gripada/resfriada, um pouco entupida"... se estiver mesmo um pouco mal de saúde, desejo melhoras pra vc. E parabéns pelo esforço extra pra trazer esse conteúdo excelente de sempre!!!

  • @eduardoguerra560
    @eduardoguerra560 Год назад

    #CódigoFonteTV _ Eu tive um duvida repentina. Sei que não tem muito a ver com o que está sendo passado. Ainda não sou programador. Mas, caso eu me forme programador java. Eu posso fazer alteração de um Software para meu uso? exemplo-Internet Download manager ou outros.

    • @luclorencini
      @luclorencini Год назад

      Se voce tiver acesso ao código-fonte, sim

  • @rharisonl
    @rharisonl Год назад

    É possível usar esses conceitos ser utilizar POO? Na programação funcional por exemplo.

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

      Sim, os principios SOLID funcionam no paradigma funcional, em alguns casos é até mais fácil de implementar.

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

    Beleza, mas isso não muda o fato que na Austrália há 48 milhões de cangurus e no Uruguai há 3.457.480 de habitantes, então se os cangurus decidirem invadir o Uruguai, cada uruguaio terá que lutar com 14 cangurus.

  • @jmgame186
    @jmgame186 Год назад

    Será que eu como programador júnior React preciso me preocupar em aplicar estes conceitos? Uma hora eu sei que será preciso, mas no momento atual é algo que já posso começar a trabalhar para aplicar?

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

      No início foca em codar, sem medo de ser feliz. Só depois de codar muito que passa a fazer sentido em pensar na organização. Esses tópicos de clean code e desing patterns é pra quem já tá codando e fazendo código bagunçado. Se você tá começando, essa é a hora de focar em escrever código, sem se preocupar com esses detalhes. Aos poucos você vai aprendendo isso

    • @jmgame186
      @jmgame186 Год назад

      @@nandomax3 valeu!

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

      Deixa mais pra frente. Injeção de Dependência pode complicar muito seu código se for mal usado e muitas vezes não compensa aumentar a complexidade só pra aplicar isso.

  • @gaelfx6331
    @gaelfx6331 Год назад

    é só pra mim que eles lembram um pouco o coisa de nerd?

  • @muriloloboteixeira4773
    @muriloloboteixeira4773 Год назад

    E se hipoteticamente minha aplicação (que eh uma api) SEMPRE (e eu garanto isso) vai usar uma unica forma de autenticar, ou um unico repositorio, ou uma unica implementação de acesso a um dado por ex, implementar esses principios estariam colocando uma complexidade desnecessaria no codigo?

  • @semedicao587
    @semedicao587 Год назад

    top

  • @rawsantos9638
    @rawsantos9638 Год назад

    Ou injeção de dependência e inversão de controle

  • @simoesnh
    @simoesnh Год назад

    Seria ótimo se não houvesse uma música constante. Desagradável para o tipo de vídeo.

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

    Galera se lembrem que estão falando com todo tipo de gente des de o iniciante, cuidado com termos tecnicos e nichados.

  • @BenjamimDenis
    @BenjamimDenis Год назад

    InnerHtml o calcanhar de aquiles para o dom

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

    No título do vídeo, está: "Use Inversão de Controle e Injeção de Dependência". Mas no vídeo foi falado sobre Inversão de DEPENDÊNCIA (DI), e não de CONTROLE (IoC). Inversão de Dependência E Inversão de Controle, são a mesma coisa? 🥲