Princípios SOLID em uma API REST com Node.js e TypeScript | Code/Drops #44

  Рет қаралды 206,383

Rocketseat

Rocketseat

Күн бұрын

Muito se ouve falar sobre arquitetura, princípios, design patterns e vamos combinar que, na maioria das vezes, são temas extremamente chatos e maçantes de estudar, concorda?
Nesse vídeo vamos resumir os princípios do SOLID e mostrar como conseguiríamos aplicar esses conceitos em uma API REST utilizando Node.js e TypeScript.
Código do projeto: github.com/Rocketseat/youtube...
00:00 - Fala Dev
01:19 - O que é SOLID?
08:03 - Criando uma API com SOLID na prática
44:27 - Testando a API no Insomnia
45:42 - Considerações finais
-----
Acompanhe a Rocketseat nas redes sociais:
Site: www.rocketseat.com.br
Twitter: / rocketseat
Facebook: / rocketseat
Instagram: / rocketseat_oficial
Comunidade: comunidade.rocketseat.com.br
Blog: rocketseat.com.br/blog
Inscreva-se na nossa Newsletter!
rocketseat.ck.page/b4b4e90122
Ouça também:
Spotify: spoti.fi/2PwXeUp
Anchor.fm: anchor.fm/faladev
Apple Podcasts: apple.co/2pReOrN
Google Podcast: bit.ly/2Cgj077

Пікірлер: 636
@dieegosf
@dieegosf 3 жыл бұрын
Fala dev! Os conceitos apresentados no vídeo são uma adaptação dos conceitos mais tradicionais utilizados há decadas dentro da programação e não são apresentados como um resumo de livros de arquitetura ou design patterns. A ideia do vídeo é mostrar como eu aplico os princípios de forma adaptada dentro da construção de APIs com Node e não simplesmente estipular regras para seu código, por isso, alguns conceitos podem não bater 100% com os mesmos apresentados em livros de SOLID, clean code ou DDD. É normal que cada pessoa e time adapte cada estrutura para sua realidade e não simplesmente saia utilizando de regras sem entender a motivação por trás de cada uma delas. Bora codar 🚀
@luizgoncalves1421
@luizgoncalves1421 3 жыл бұрын
Diegão qual ubuntu/linux está usando nesse vídeo?
@rocketseat
@rocketseat 3 жыл бұрын
Faala Luiz! Nesse vídeo é o Ubuntu com KDE 💜
@elysamsepi0l703
@elysamsepi0l703 3 жыл бұрын
Queria saber qual é esse tema do plasma e da janela de aplicativos com esse tipo de cor, porque eu não acho em lugar nenhum, poderia me ajudar?
@vitorrios8249
@vitorrios8249 3 жыл бұрын
Cara, sensacional esses conceitos. Com certeza, estarei aqui para consumir mais conteúdos como esse. Parabéns pela didática.
@wilsonmatokanovicjunior6211
@wilsonmatokanovicjunior6211 3 жыл бұрын
Conteudo top Diego. Fale um pouco mais sobre Clean Architecture
@mathws1
@mathws1 3 жыл бұрын
Sim! Seriam interessantes videos sobre CQRS, DDD e Clean Architecture com node e typescript
@FlockzDj
@FlockzDj 3 жыл бұрын
concordo!
@jordanrodrigues1824
@jordanrodrigues1824 3 жыл бұрын
Sim, demais!!
@LucasLopes-tl2yz
@LucasLopes-tl2yz 3 жыл бұрын
Up!
@rodrigo00737
@rodrigo00737 3 жыл бұрын
amigo, posso sugerir o canal do eximia co, ele aborda esses conceitos, apesar de usar c# os conceitos são bons ...eu tenho aprendido muito com o Elemar jr
@ChrisMarques1981
@ChrisMarques1981 3 жыл бұрын
Up
@RodrigoMedeirosBrazil
@RodrigoMedeirosBrazil 3 жыл бұрын
Agora a Rocketseat tá indo pra um caminho que faltava, arquitetura de software! isso foi muito bom, se continuar eu curto e compartilho, sei que dá muito trabalho, e por isso, parabéns!
@rocketseat
@rocketseat 3 жыл бұрын
Fala Rodrigo! Muito obrigado pelo feedback!! Traremos ainda mais conteúdos agora sobre isso! 💜
@Bruno-wb5wu
@Bruno-wb5wu 3 жыл бұрын
0:21 - Fala Dev 1:19 - O que é SOLID? 5:47 - Palmeiras não tem Mundial 8:03 - Criando uma API com SOLID na prática 44:27 - Testando a API no Insomnia 45:42 - Considerações finais
@giovannetarcitano
@giovannetarcitano 3 жыл бұрын
HAHAHAHA rolou até mensagem subliminar
@renandmc
@renandmc 3 жыл бұрын
Kkkkk palmeiras não tem mundial
@LIMAKEYS
@LIMAKEYS 3 жыл бұрын
Palmeiras n tem mundial hu3u3u3
@cactos1dnd
@cactos1dnd 3 жыл бұрын
Palmeiras não tem mundial... #true... kkkkkkkkkk
@michaelnsc
@michaelnsc 3 жыл бұрын
HAHAHAHHAHAHAH Boa!
@kildersonsena8873
@kildersonsena8873 3 жыл бұрын
Fala Diego, beleza?! Primeiramente eu quero parabenizar a Rocketseat por investir esforços para esse tipo de conteúdo, pois na minha visão nós sempre temos que incentir o povo a construir bons softwares e arquitetura + SOLID são ÓTIMOS assuntos para essa galera. Porém, eu queria fazer algumas considerações em cima de algumas coisas que foi falado que não condizem com a Clean Arch. Vou citar aqui: - 03:09 - OCP na minha visão e experiência é sim um princípio super importante, ainda mais se tratando de Backend. Eu não sei se você compreendeu o real sentido dele, e nem julgo se não tiver entendido, mas acho um pouco leviano dizer que ele não é um princípio importante ficar de olho; - 15:35 - acho que aqui foi erro mais grave se falando da Clean Arch. Entidades fazem parte da camada mais interna da arquitetura e elas NUNCA devem depender de NADA ao redor dela, e aqui você "marretou" uma biblioteca de terceiro dentro da entidade User. Acho que deve ter dado um pequeno derrame no Tio Bob hahahahaha (zuera). Poderia nesse caso criar uma interface da mesma forma que você fez com o serviço de Email. Na MINHA visão, essa lógica de geração de ID de um entidade deve ser resolvido a nível de Repository; - 19:06 - eu não conheço essa convenção de "package by feature", mas se você está baseando sua aplicação em cima da Clean Arch o controller não deve nunca ficar na camada de use case. Controllers pertencem a camada de Infra (como você mesmo fala no fim do vídeo) ou em uma camada de Application em algumas implementações, mas que no fim das contas ele acaba virando um braço de Infra e a camada de Use Case pertence a uma camada mais interna. Nesse caso eu criaria um diretório Application (ou algo do tipo) e colocaria todos os controllers lá. - 46:15 - aqui você falou certo, que todo mecanismo externo (detalhes) tem que está totalmente abstraído e elas "não devem conhecer" as regras de negócio diretamente. Porém você infrigiu exatamente no pior local para infringir, que foi sua entitade User. Mas mano, fora isso o vídeo está muito bom. Espero que você receba esse comentário como uma crítica construtiva e que te motive a melhorar em algo, até pq arquitetura de software é algo muito interpretativo. Ah, to aberto pra debater aqui para ajudar geral =). PS: de repende um post, vídeo mais aprofundado sobre isso seria top. vlw =)
@seidenada526
@seidenada526 3 жыл бұрын
Fala Kilderson, eu também tive alguns "alarmes" soando em relação a algumas colocações do Diego, mas as suas também merecem cuidado! Primeiramente, minha principal crítica ao apresentado pelo Diego é sobre quando ele disse que "SOLID não dá para aplicar no front, onde temos que seguir mais as decisões do framework" - acho bem errada a colocação hahah Os princípios não dizem em nada que só se aplicam a back-end. Basicamente ele usou algumas libs (express, mail, db) e separarou a lógica de negócio desses periféricos. Isso é bem possível de se fazer no front, mas acho que pra maioria das pessoas falta um "guia" de como fazer. No back temos as receitas de bolo controller+repository+model+services que já engessam, ou ajudam, as pessoas a pensar em desacoplamento, enquanto no front esses padrões não estão tão estabelecidos. Sobre a sua crítica a usar um gerador de ID na classe User, eu acho que você está sendo radical e perdendo o sentido num preciosismo. Afinal, qual o limite de "código de terceiro" que não pode estar na camada de domínio? Se eu quiser usar um HashSet da vida no meu modelo, vou ter que importar essa classe. É um código de terceiro também. Então se javascript tivesse um uuid generator "nativo" ele poderia ter usado diretamente? A linha é sutil né. Eu acho que o seu ponto é na verdade para termos cuidado com código terceiro pois ele pode mudar facilmente ou ainda oferecer uma api que traga complexidade desnecessária para o domínio. Agora, se ele confia que a uuidv4 é uma lib estável e vai apenas usar 1 função dela, é mais simples apenas usá-la como ele fez. Criar mais uma IUUIDGenerator e uma implementação concreta que chama a lib para apenas 1 método e depois ter que ficar injetando isso sempre que se criar uma entity vai deixar o código mais complexo e mais difícil de se trabalhar! E sobre gerar o ID no repository: tem casos mais complexos, por exemplo quando se deseja criar entidades relacionadas (manja aggregates?) que vão exigir algumas idas e vindas ao repositório desnecessárias. Posso bolar um exemplo caso esteja interessado. É isso. Valeu por trazer a discussão e valeu mais ainda ao pessoal da Rocket pelo conteúdo de alta qualidade!
@viniciusneto6824
@viniciusneto6824 3 жыл бұрын
@@seidenada526 Por favor, continuem a discussão que eu tô aprendendo à balde! Hahaha!
@seidenada526
@seidenada526 3 жыл бұрын
@@viniciusneto6824 Hahaha que massa, o Kilderson podia trazer mais tb! Em discussões como essa eu sempre lembro de uma reflexão de que vi numa palestra (não to conseguindo achar qual agora) dizendo Regras simples, em sistemas complexos, geram comportamentos complexos. Um exemplo é a já discutida "entidade não pode ter dependências externas". Uma regra aparentemente simples, mas que aplicada cegamente pode gerar a necessidade de injetar um UUIDGenerator em cada entity - na minha visão deixando o todo mais complexo ao invés de mais simples. E falando em complexidade, deixo aqui mais uma vez um link (já deixei em outro comentário por aqui hehe) para uma playlist do Elemar Jr sobre DDD: kzfaq.info/sun/PLkpjQs-GfEMN8CHp7tIQqg6JFowrIX9ve Ele já começa jogando na cara como se deve pensar em complexidade de software. É lindo.
@vanilsonnog
@vanilsonnog 3 жыл бұрын
Gostaria de acrescentar outro ponto aqui tambem. Em 42:20, onde ele ta "injetando" as dependencias do repository e MailProvider. Seria interessante mostrar isso sendo feito por algum injetor de dependencias próprio, fazendo que com fosse mais simples e direto de modificar as dependencias de um conjunto de Repository por exemplo. Da forma que está, cada repositorio precisa ser injetado manualmente e pode acontecer um erro de o desenvolvedor importar uma implementação de repositorio que faz as coisas de outra forma (tipo, em uma linha ele importa o PostgresUsersRepository e em outra linha ele importa o MySqlPermissionsRepository). Usando uma implementação mais bacana de injeção de dependecias resolveria. Seria mais ou menos assim: suponha que você tem 2 implementações possiveis de repositorios, uma para Postregres e outra para MySQL. Aí digamos que os Repository de Postregre estarão na pasta "src/repositories/implementations/postregree" e os de MySQL estão em "implementations/mysql". Usando um injetor de dependencias, bastaria que você mudasse uma configuração (a config que diz qual diretorio de implementações será usado) e aí você rapidamente passaria a usar outro conjunto de repositorios. :)
@ygortorresgaleno9654
@ygortorresgaleno9654 3 жыл бұрын
@@seidenada526 Não é uma questão de preciosismo não, o uncle Bob mesmo fala, se vc quer inserir um código de terceiro deve fazer sua abstração e fazer inversão de dependencia, você assumir que algo é estável e n vai se tornar obsoleto é um erro grave, dependendo do tipo de decisão isso pode virar um cancer no seu sistema(assim como os ORM's haha). Sobre a geração de id acho mais adequado fazer essa injeção dentro do useCase.
@fabioramatis2373
@fabioramatis2373 3 жыл бұрын
O conteudo que eu mais queria ver aqui! Muito obrigada mesmo, vcs sao incriveis
@elciesstv
@elciesstv 3 жыл бұрын
Diego, Rocketseat. Muito Obrigado!!! Esse vídeo em especial é de uma qualidade de conhecimento fora do comum. Sensacional!!!!!
@lucasousi
@lucasousi 3 жыл бұрын
Muita qualidade nesse vídeo, muito conceito envolvido e a aplicação destes em código deixa tudo mais claro. Muito bom!
@viniciusespinosa8084
@viniciusespinosa8084 3 жыл бұрын
Parabéns, Diego e todo o time da Rocketseat! Seus vídeos são incríveis e me ajudam muito! Deem like no vídeo e compartilhem pessoal. Isso é o mínimo que podemos fazer para retribuir o esforço de produzir conteúdo gratuito e completo como esse. Valeu!
@henriquealmeida1146
@henriquealmeida1146 3 жыл бұрын
Por favor, mais vídeos como esse! Chega um ponto em que temos que nos atentar a melhorar nossas estruturas de código e não apenas as tecnologias a serem usadas. Muito bom o vídeo!
@gabriellopes9859
@gabriellopes9859 3 жыл бұрын
Conteúdo muito show! Realmente é algo que sinto falta nos vídeos da Rocketseat, temas mais voltados para arquitetura. São assuntos de abordagem mais complicada mas que com toda certeza fazem a diferença na trajetória de aprendizado de qualquer desenvolvedor. Parabens pelo conteudo!
@YagoErnandes
@YagoErnandes 3 жыл бұрын
Faça mais vídeos de arquitetura, por favor! Eles são incríveis!
@actuallymarcos8606
@actuallymarcos8606 3 жыл бұрын
Incrível conteúdo Diego!!! Faz mais, faz mais!!
@EricAmbiel
@EricAmbiel 3 жыл бұрын
Show, topzera, parabéns equipe da Rocketseat !!!
@joaohiago2535
@joaohiago2535 3 жыл бұрын
Que conteúdo sensacional! Muito obrigado Rocketseat, faz tempo que não vejo um código tão bonito e bem estruturado KKKKKKK Continuem por favor postando vídeos sobre infraestrutura e boas práticas, vocês são demais!!
@maiconfriedel590
@maiconfriedel590 3 жыл бұрын
Vídeo sensacional Rocket! Com certeza queremos mais vídeos nesse estilo, falando mais de arquitetura. Clean Architecture, DDD seria fantástico ter vídeo sobre isso. Vocês são fodas
@rennanoliveira3443
@rennanoliveira3443 3 жыл бұрын
Bom demais esse vídeo cara, parabéns Diegão!
@KevinMadalossoVeiga
@KevinMadalossoVeiga 11 ай бұрын
Esse é com certeza um dos melhores conteúdos sobre SOLID que tem no KZfaq. Obrigado Diego por compartilhar com a gente esse conhecimento. Abraços!
@rogerfernando892
@rogerfernando892 2 жыл бұрын
O conteúdo técnico desse vídeo é sensacional!
@jeffersonferreira43
@jeffersonferreira43 3 жыл бұрын
Se falasse uma vez por semana sobre arquitetura seria perfeito, pode ser vídeo longo que dá nada, o importante é aprender.
@rocketseat
@rocketseat 3 жыл бұрын
Opa! Vamos trazer mais conteúdo sobre arquitetura sim Jefferson! 💜💜
@mentaah404
@mentaah404 Жыл бұрын
Cara, Diego você é um MONSTRO. Seus vídeos andam me ajudando demais, desde quando eu era estagiário e agora como Júnior. Comecei a ver mais de princípios SOLID e arquitetura DDD e você tem me ajudado demais com as explicações. Você está de parabéns pelo ótimo trabalho e conteúdo!
@gabrielfernella6491
@gabrielfernella6491 3 жыл бұрын
Que aula incrível, vou ter que assistir de novo porque tem bastante conteúdo, mas contem muitos conceitos que estou vendo na faculdade, que nesse vídeo sim eu entendi boa parte dos conceitos de baixo acoplamento, em organizar parte dos códigos por pastas e etc, muito bom mesmo!
@kuryart4586
@kuryart4586 3 жыл бұрын
Com certeza fale mais sobre arquitetura. É um assunto importante demais, e a gente vê pouca gente falando de uma maneira boa sobre eles.
@rodrigomoraes2451
@rodrigomoraes2451 3 жыл бұрын
Espero que venham mais vídeos sobre arquitetura! Ficou show esse.
@pethersonmoreno8766
@pethersonmoreno8766 3 жыл бұрын
Parabéns Diego, muito bom o vídeo. Demonstra um exemplo prático de como utilizar esses princípios e ainda facilita quem está estudando clean architecture. Por favor, considere fazer mais vídeos de arquitetura, precisamos muito disso no desenvolvimento, os desenvolvedores não percebem a importância disso para a manutenção de projetos de longo prazo.
@seltenermann
@seltenermann 3 жыл бұрын
Rocketseat sempre trazendo conteúdo de qualidade! Eu voto por mais conteúdos desse tipo. Valeu, Diego!
@rocketseat
@rocketseat 3 жыл бұрын
Valeeeeu Drache! Com certeza traremos mais sim! 💜
@samuelmartins3816
@samuelmartins3816 3 жыл бұрын
Esse tipo de conteúdo é muito top. Acho que leva o desenvolvimento pra um outro nível.
@lucasfernandessandin3725
@lucasfernandessandin3725 Жыл бұрын
Sensacional! Bem explicado, direto e simples.
@ebratz
@ebratz 3 жыл бұрын
Muito bom a introdução sobre o SOLID! Por mais papos sobre arquitetura de software!!!
3 жыл бұрын
Muito interessante e bem apresentado, gostei desse jeito mais rápido de explicar, assim é mais fácil absorver conhecimento e não dá sono. Gostaria sim de ver mais videos sobre arquitetura.
@fabios.oliveira8232
@fabios.oliveira8232 3 жыл бұрын
Diego achei fantástico o conteúdo.. Já vou correndo aplicar nos meus projetos. Espero mais conteúdos como esse. Vlw!
@leonardobarros3329
@leonardobarros3329 2 жыл бұрын
Gostei demais e estou precisando ver mais conteúdos assim para que eu possa tomar melhores decisões e aumentar a minha conciência analítica.
@josemoristacarneirodasilva7831
@josemoristacarneirodasilva7831 3 жыл бұрын
Conteúdo excelente igual ao código final! Vlw demais! :)
@kochgamers
@kochgamers 3 жыл бұрын
arquitetura e sensacional, quanto mais video tiver sobre o assunto melhor, video excelente!!!!!!!
@marciodeandradesena
@marciodeandradesena 3 жыл бұрын
Já subi de level só com esse vídeo aí. Valeu de mais galera
@wandersonsousa1891
@wandersonsousa1891 2 жыл бұрын
Simples, claro e prático. obrigado pelo bom trabalho !
@wellingtonmonteiro9278
@wellingtonmonteiro9278 3 жыл бұрын
Cara que show, sabe que para quer iniciar sua carreira solo e não conviveu com a arquitetura tem dificuldade em criar uma aplicação destes moldes. Bom demais apreender com vocês, trás mais desses conteúdos pra nós e de preferência com prisma 2, já esperando mais conteúdos, abs...
@jonatasmoreto1044
@jonatasmoreto1044 3 жыл бұрын
Top! Continue sim, muito top. Obrigado por compartilhar conhecimentos
@rocketseat
@rocketseat 3 жыл бұрын
Fala Jonatas!! Valeeu pelo feedback! 💜
@altamirsantos6030
@altamirsantos6030 3 жыл бұрын
BRABO DEMAIS, Meio complicado esses conceitos, mas bora colocar em prática
@jeanlucas06
@jeanlucas06 3 жыл бұрын
Grato pelo conteúdo Diego! Fortaleceu grandão...
@luanrohde5668
@luanrohde5668 3 жыл бұрын
Show de Bola!!! Arquitetura é sempre bem-vindo, dale conteúdo hehehe
@danielnegrisoli
@danielnegrisoli 3 жыл бұрын
Muito top! Parabéns pelo conteúdo. Sempre interessante e ajudando a comunidade.
@rocketseat
@rocketseat 3 жыл бұрын
Faala Daniel! Obrigado pelo feedback!! 💜💜
@cleiton3209
@cleiton3209 3 жыл бұрын
Obrigado pelo excelente conteúdo, e sim mais vídeos sobre arquitetura
@EdZava
@EdZava 3 жыл бұрын
Melhor video ate agora!! Ja esperando mais videos continuando este projeto ou mais projetos falando mais sobre arquitetura 🤗
@rocketseat
@rocketseat 3 жыл бұрын
Faala Zava! Com certeza vamos trazer muitos outros! 💜
@seducedbywine
@seducedbywine 3 жыл бұрын
O conteúdo que eu mais queria ver
@seducedbywine
@seducedbywine 3 жыл бұрын
"palmeiras n tem mundial" POKASDPSKDPADPOSKDPOKSPODKASPODKPOASDKOASKDOSKDPASDK
@patrickdeangelis9581
@patrickdeangelis9581 3 жыл бұрын
Ótimo o vídeo, aguardando os próximos.
@rocketseat
@rocketseat 3 жыл бұрын
Valeeu pelo feedback, Patrick! 💜💜
@emkisn
@emkisn 3 жыл бұрын
Acho muito massa trazerem mais conteúdo sobre arquitetura, acho que é mais difícil encontrar conteúdo sobre. Gostaria de ver também conteúdos de arquitetura pro frontend também.
@OneD315
@OneD315 3 жыл бұрын
Observei que agora você está olhando para os princípios de arquitetura. Massa de mais.
@matheusantonio174
@matheusantonio174 3 жыл бұрын
Maaaano! Conteúdo foda demais!❤️
@gibransilva8141
@gibransilva8141 3 жыл бұрын
Assunto show! Adoro consumir conteúdo sobre arquitetura de software
@evertonfernandes143
@evertonfernandes143 3 жыл бұрын
Eu tava esperando por esse video, acho arquitetura a parte mais principal de um desenvolvimento de projeto perfeito. Apoio trazer mais vídeos sobre o assunto.
@rocketseat
@rocketseat 3 жыл бұрын
Faala Everton! Obrigadoo pelo feedback! 💜
@brunofioreze5748
@brunofioreze5748 Жыл бұрын
Ficou muito bom, obrigado por compartilhar seu conhecimento.
@kazord00n
@kazord00n 3 жыл бұрын
Muito obrigado pelo vídeo, agregou muito em meu aprendizado. Se puder trazer mais vídeos sobre arquitetura, patterns e assuntos relacionados, ficarei grato.
@henriquelopesnobrega1453
@henriquelopesnobrega1453 3 жыл бұрын
Vídeo muito massa! Traz mais, Diego :)
@lucass.p9579
@lucass.p9579 3 жыл бұрын
Muito bom video, Diego. Seria uma boa sim continuar uma serie sobre o assunto e com videos mais longos assim. E seria tambem uma boa trazer esses conceitos de SOLID pras proximas NLW.
@danielcarvalho7884
@danielcarvalho7884 3 жыл бұрын
Durante toda essa semana, eu estava procurando muitos conteúdos na internet sobre isso. Li várias explicações, assisti muitos vídeos, mas nenhum deles possui a didática fantástica de vocês. Agradeço!
@rocketseat
@rocketseat 3 жыл бұрын
Faaala Daniel! Valeeeu pelo feedback! 💜
@kauegustavozanetti2564
@kauegustavozanetti2564 3 жыл бұрын
Parabéns pelo vídeo, excelente didática na explicação.
@jacksonalves8509
@jacksonalves8509 3 жыл бұрын
Com certeza quero mais conteúdo assim!!!
@gleysonabreu6346
@gleysonabreu6346 3 жыл бұрын
Já estava utilizando esse formato de projeto mas sem muita teoria que é importante também sempre bom aprender mais.
@Bruno-ds8ze
@Bruno-ds8ze 3 жыл бұрын
O melhor conteúdo excelente como sempre!
@gamaquad6765
@gamaquad6765 3 жыл бұрын
O conteúdo é extrema importância, para mim inclusive que tenho "toc" de organização seja estetica ou funcional do código mais videos como este me satisfazem de várias formas.
@rocketseat
@rocketseat 3 жыл бұрын
Hahaha que massa Moacir! Valeeu pelo feedback ! 💜
@luancarlos9946
@luancarlos9946 3 жыл бұрын
Muito top conteúdo , se tiver eu assisto até o final
@TheKroow
@TheKroow 3 жыл бұрын
Falaaaa xará, você é monstro!!! Parabéns pelo conteúdo! Só conteúdo brabooo
@rocketseat
@rocketseat 3 жыл бұрын
Faaala Diego! Valeu pelo feedback!!! 💜💜
@danielfs
@danielfs 3 жыл бұрын
Muito bom, mais conteúdo sobre arquitetura!
@DarkJB100
@DarkJB100 3 жыл бұрын
Diego incrível esse conteúdo, é muito bom ficar sabendo sobre várias arquiteturas além da MVC, tenho orgulho de ser aluno da Rocketseat e aprender cada vez mais com vocês. Espero que o próximo vídeo seja bem maior ! Kk
@rocketseat
@rocketseat 3 жыл бұрын
Fala Edison!! Hahaha valeeu pelo feedback! Com certeza traremos ainda mais conteúdo sobre! 💜
@YagoFernades
@YagoFernades 3 жыл бұрын
Eu tenho uma interpretação um pouco diferente do princípio de aberto/fechado. Para mim se usa o princípio de inversão de dependência para alcançar o princípio de aberto/fechado. Por exemplo, vamos supor que estamos fazendo uma calculadora, então implementamos as 4 operações básicas (+, -, x, /), para isso recebemos como parâmetros a operação que vai ser realizada e os números que vão ser calculados, com um switch, por exemplo. Essa funcionalidade não está em acordo com o princípio de aberto e fechado porque qualquer operação nova que queiramos introduzir teremos que modificar a classe ou função, mas ao invés de recebermos como argumento uma “string” simbolizando a operação a ser realizada, recebêssemos a própria função poderíamos adicionar quaisquer outras funcionalidades que precisemos sem ter que alterar a classe/função original, logo seria aberto para extensão e fechado para modificação. O exemplo é meio bobo, mas acredito que ilustra bem o princípio de aberto e fechado.
@mouraleon
@mouraleon 3 жыл бұрын
Concordo plenamente, na minha visão ele errou feio falando sobre o open/closed principle, a classe tem que estar aberta para extensão e fechada para modificação, modificar um comportamento sobrescrevendo um método de classe é uma coisa muito natural de acontecer e não altera a classe original, só traz novos comportamentos para uma classe que por exemplo implementa o principio de segregação de interfaces.
@letsquelets
@letsquelets 2 жыл бұрын
Concordo 100% com a sua consideração. Inclusive, se procurar exemplos simples por aí, todos vão de encontro com o que você disse.
@henriquefeitosa8027
@henriquefeitosa8027 3 жыл бұрын
Conteúdo sensacional, parabéns!!!!!
@thiagovendramel8415
@thiagovendramel8415 2 жыл бұрын
Excelente vídeo, parabéns !
@LSensTubeer
@LSensTubeer 3 жыл бұрын
Showww! Diego parabéns ótimo conteúdo, com certeza traga mais desse assunto. E o final ai era uma alcateia uivando kkk
@tomascaetano4270
@tomascaetano4270 Жыл бұрын
Valeu Diego. Conteúdo incrível.
@vanilsonnog
@vanilsonnog 3 жыл бұрын
Gostaria de acrescentar outro ponto aqui também. Não sei se vai ficar tão claro, mas vamos lá. Antes de tudo, quero parabenizar a vocês pelo conteúdo excelente! Em 42:20, onde ele ta "injetando" as dependências do Repository e MailProvider. Seria interessante mostrar isso sendo feito por algum injetor de dependências próprio, fazendo que com fosse mais simples e direto de modificar as dependências de um conjunto de Repository por exemplo. Da forma que está, cada repositório precisa ser injetado manualmente e pode acontecer um erro de o desenvolvedor importar uma implementação de repositório que faz as coisas de outra forma (tipo, em uma linha ele importa o PostgresUsersRepository e em outra linha ele importa o MySqlPermissionsRepository). Usando uma implementação mais bacana de injeção de dependências resolveria. Seria mais ou menos assim: suponha que você tem 2 implementações possíveis de repositórios, uma para Postregres e outra para MySQL. Aí digamos que os Repository de Postregres estarão na pasta "src/repositories/implementations/postregree" e os de MySQL estão em "(...)implementations/mysql". Usando um injetor de dependências, bastaria que você mudasse uma configuração (a config que diz qual diretório de implementações será usado) e aí você rapidamente passaria a usar outro conjunto de repositórios, tudo isso alterando minimamente ou nem sequer precisando alterar o código do injetor,. :)
@ooNCyber
@ooNCyber 3 жыл бұрын
É Diego, vendo esses vídeos fica mais a vontade de comprar um bootcamp de vocês. Mesmo o vídeo sendo antigo, parabéns!
@ilgssonbraga7473
@ilgssonbraga7473 3 жыл бұрын
Já dei o like antes de assistir pq sei que o vídeo ta top :)
@giulianabezerra
@giulianabezerra 3 жыл бұрын
Poxa, que massa! Gostaria muito de ver vídeos sobre outros temas de arquitetura com essa didática prática de vocês. Imagina ver DDD assim na prática? Ia ser show!
@diegoferreira8243
@diegoferreira8243 3 жыл бұрын
Gostei muito do conteúdo e gostaria muito de assistir uma série de videos assim !!!
@silass9993
@silass9993 3 жыл бұрын
Bem interessante a implementação. Parabéns.
@WellDMLT
@WellDMLT 3 жыл бұрын
Por favor, mais conteúdo como esses são bem vindo!
@rocketseat
@rocketseat 3 жыл бұрын
Faala Wellington! Com certeza traremos mais sim!! 💜
@Richaaoo
@Richaaoo Жыл бұрын
Cara, sou seu fã. Que video foda!
@felipebarcelos6722
@felipebarcelos6722 3 жыл бұрын
Fantástico! Isso era exatamente o que faltava para ser ensinado. Parece que a Rocketseat lê mentes.
@rocketseat
@rocketseat 3 жыл бұрын
Dizem por aí que lemos mesmo 🔮
@alexandrepellegrino2699
@alexandrepellegrino2699 3 жыл бұрын
diego eh sensacional, mesmo sendo rapido, eu assisti essa aula igual o ep de uma serie, bom demais
@rocketseat
@rocketseat 3 жыл бұрын
Fala, Alexandre! Valeeeeu pelo feedback! 💜
@OMateusVidal
@OMateusVidal 3 жыл бұрын
Caaaaraca Diego, que arquitetura mind blowing, junto com TypeScript então, casou perfeitamente, to mega empolgado para implementar nos projetos a seguir!! Top demais, você tem a manha!!
@rocketseat
@rocketseat 3 жыл бұрын
Faala, Mateus! Valeeeu pelo feedback! 💜💜
@eduardommss
@eduardommss 2 жыл бұрын
Muito bom, parabéns!
@jlribeiromt
@jlribeiromt 2 жыл бұрын
Excelente conteúdo. Muito top, aprendendo muito.
@rocketseat
@rocketseat 2 жыл бұрын
Que show que ta curtindo, João! 💜 🚀
@tropicalverktaki
@tropicalverktaki 2 жыл бұрын
Massa demais esses Code/Drops da Rocketseat
@rocketseat
@rocketseat 2 жыл бұрын
Faaaaaala, Abner! Pessoal mandou bem demais, né? Que show que curtiu! 💜 🚀
@joaofernandes7066
@joaofernandes7066 3 жыл бұрын
Eae, Rocket! Mais uma vez um excelente conteúdo! Como o Diego sugeriu ali no final sobre TDD, gostaria que ele fizesse um vídeo fazendo uma breve codificação de API e depois documentasse os testes e os realiza-se com o Jest. Pode ser que fique longo, mas saibam que essa questão de vídeo longo não faz mal quando se trata do conteúdo de vocês!
@leonardooliveira3630
@leonardooliveira3630 3 жыл бұрын
Sem dúvida o video mais valioso da Rocket, parabéns! Poste mais sobre arquitetura e padrões, gostaria de aplicar isso no Angular e no React também!!! Ótimo 👍
@rocketseat
@rocketseat 3 жыл бұрын
Fala Leo! Obrigado pelo feedback! Vamos trazer mais vídeos sobre arquitetura e patterns sim! 💜
@WesleyAlves-ii6xl
@WesleyAlves-ii6xl 3 жыл бұрын
Cara, que aula, adorei o v vídeo e com certeza gostaria de ver mais sobre esse conteúdo
@rocketseat
@rocketseat 3 жыл бұрын
Fala Wesley!! Valeeu pelo feedback ! 💜
@DayvsonMarquesDev
@DayvsonMarquesDev 3 жыл бұрын
Mais um vídeo sensacional cara!
@rocketseat
@rocketseat 3 жыл бұрын
Valeeeeu Dayvson! 💜
@dannluciano
@dannluciano 3 жыл бұрын
Um dos melhores conteúdos de vocês.
@MaisUmSomente
@MaisUmSomente 3 жыл бұрын
Muito bom, obrigado. E sim faz mais vídeos sobre arquitetura, e também sim pode ser vídeos longos, esses 48 minutos foram incríveis e poderia ir mais. Explicação incrível, vídeos assim podem durar 5 horas, Na boa parabéns e obrigado mais uma X.
@gustavofernandosohne5336
@gustavofernandosohne5336 2 жыл бұрын
Muito bom o conteudo, legal ver na pratica os conceitos do Solid
@rocketseat
@rocketseat 2 жыл бұрын
Que massa que curtiu, Gustavo! 💜 🚀
@fabioramatis2373
@fabioramatis2373 3 жыл бұрын
Por favor continuem falando sobre arquiteturas! Adoraria um video sobre DDD
@kenedyribeiro283
@kenedyribeiro283 3 жыл бұрын
Fala Rocket, conteúdo excelente! Por favor, traga sim mais conteúdo sobre padrões de projeto e arquitetura de software porque são coisas que podem ser reaproveitadas e não tratam só de código mas de mindset mesmo e isso é muito bom!
@rocketseat
@rocketseat 3 жыл бұрын
Que massa que curtiu Kenedy!! Vamos trazer mais, com certeza! Valeeu pelo feedback! 😍
@joaoamadeu3659
@joaoamadeu3659 3 жыл бұрын
Agora sim, um vídeo #full #sensacional para alegrar esse dia triste.
@eldervivot6273
@eldervivot6273 3 жыл бұрын
Top, por mais conteúdo deste assunto.
@gabrielmelo3858
@gabrielmelo3858 Жыл бұрын
Vídeo sensacional!
@juanrangel2752
@juanrangel2752 3 жыл бұрын
Mandou bemzasso no conteúdo!!!! Valeria a pena ver um CRUD finalizado até pra entender o que reutilizar, estrutura de pastas e afins!!! Valeu
@LeandroPuerari
@LeandroPuerari 3 жыл бұрын
Conteúdo top. Necessário para sair da superfície. Parabéns
@SilasSWF
@SilasSWF 3 жыл бұрын
Excelente conteúdo!!!
@andreleipzig
@andreleipzig 3 жыл бұрын
Por favor mais videos como esse!!!
Why using useCallback makes so much sense? | Code/Drops #13
16:44
Programadores com código sujo : SOLID
17:08
Lucas Montano
Рет қаралды 26 М.
Final muy inesperado 🥹
00:48
Juan De Dios Pantoja
Рет қаралды 19 МЛН
Luck Decides My Future Again 🍀🍀🍀 #katebrush #shorts
00:19
Kate Brush
Рет қаралды 8 МЛН
버블티로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 85 МЛН
Homemade Professional Spy Trick To Unlock A Phone 🔍
00:55
Crafty Champions
Рет қаралды 59 МЛН
Dominando os Princípios SOLID: Exemplos práticos com Java
18:51
Consumindo APIs no React com SWR | Code/Drops #38
37:48
Rocketseat
Рет қаралды 70 М.
Como aplicar SOLID no ReactJS na prática (com testes)?
31:28
Dev Junior Alves
Рет қаралды 6 М.
Solid + GraphQL = Realtime Magic
33:46
Jack Herrington
Рет қаралды 29 М.
REFATOREI UM CÓDIGO REACT USANDO CLEAN CODE
30:53
Rocketseat
Рет қаралды 114 М.
NestJS + TypeORM + GraphQL | Code Challenge
3:11:06
Rocketseat
Рет қаралды 83 М.
Final muy inesperado 🥹
00:48
Juan De Dios Pantoja
Рет қаралды 19 МЛН