Seu próximo back-end Node com TESTES! (+ SOLID)
✅ NLW eSports: Eleve suas habilidades de programação na prática.
Desenvolva um projeto inédito do universo de games e acelere sua evolução, seja qual for o seu nível: rseat.in/nlw-esports
Hoje a preocupação das pessoas com arquitetura de software aumentou muito, mas como medir uma boa arquitetura? Para mim, uma das melhores métricas é analisar o quanto sua aplicação é testável, ou seja, o quão fácil é criar e manter testes, principalmente unitários.
Nesse vídeo eu mostro como podemos pensar no desenvolvimento da aplicação de uma forma escalável desde o início, com baixo acoplamento e fácil de testar, utilizando conceitos de SOLID e outros princípios de design de software.
-----
Conecte-se a 200mil devs e avance para o próximo nível com a nossa plataforma: rocketseat.com.br/
Cadastre-se na nossa plataforma: app.rocketseat.com.br/signup
Junte-se a mais de 392mil devs em nossa comunidade no Discord: / discord
Acompanhe a Rocketseat nas redes sociais:
Twitter: @rocketseat
Facebook: @rocketseat
Instagram: @rocketseat_oficial
Пікірлер: 217
Faz um vídeo para falar mais sobre a melhor maneira de lidar com os erros no back-end (functional error handling) por favor!!! 😀
@calvodev
Жыл бұрын
fala murilo, da uma olhada no padrão EITHER para lidar com erros, é super interessante
@lservo
Жыл бұрын
up!
@lucascorte7387
Жыл бұрын
Gostaria também
@Lucas-gp6xn
Жыл бұрын
Perfeito, seria um ótimo video
@aragnbr
Жыл бұрын
up pra esse vídeo, vai ajudar bastante
sem medo de errar, esse diego é simplesmente o melhor do país nisso, pelo menos até onde vi (e vi muitos, por anos, presenciais e online). nunca encontrei didática como essa, nem a preparação e a condução do material, ou as ferramentas e abordagens utilizadas. sensacional. cada vídeo dele substitui com melhoria vários dias de boas aulas. talvez eu tenha encontrado semelhança com alguns profissionais gringos, mas sinceramente arrisco a dizer que talvez ele derrube até mesmo os gringos. é simplesmente impressionante. o bagulho flui tão natural que é como se arrancasse suas dúvidas com a mão e desse um chute no traseiro, do tipo "sofre não, faz assim ó, pronto, agora vai lá desenvolver seu negócio de forma eficiente." oO
@dieegosf
Жыл бұрын
Poxa, que legal seu comentário, obrigado mesmo, nunca tento me comparar com outras pessoas até porque me inspiro em muitos com quem já aprendi e aprendo muito. Obrigado novamente pela mensagem
Esse tipo de vídeo é MUITO MASSA! Ver na pratica o desenvolvimento, o fluxo e a forma da pessoa pensar é muito útil.
Pra quem não se ligou, a regra "no-useless-constructor" que ele desativou (usando "off"), é para conseguir fazer o uso do "Constructor Assignment" ou "Syntactic Sugar". constructor(private appointmentsRepository: AppointmentsRepository) { }
@dieegosf
Жыл бұрын
Valeu por sinalizar aqui, Fagner
Que top, tava querendo muito ver o Vitest em prática e você trouxe nesse vídeo! \o/
Vídeo incrével! Meus parabéns! Seria bacana uma mini série criando uma aplicação completa totalmente do zero. Quem apoia? Up!
@matheushonorio6259
Жыл бұрын
O NLW é exatamente isso ai, vai ter um dia 16/01/2023
Vídeo muito maneiro! Agora quero mais vídeos sobre Node, eu imploro💜🚀
Será ótimo ter uma aula de funções para tratamento de erro 🔥
@lobliqua
Жыл бұрын
Aprendi bastante por aqui sobre isso: kzread.info/dash/bejne/haKso9Nym9ffpdI.html&ab_channel=GuidoCerqueira
Muito Bom, obrigado pelo seu trabalho à comunidade
Simples e super didático. Muito boa essa abordagem de TDD usando alguns princípios de SOLID e clean architecture!
Diegão, essa parada de lidar com erros que você comentou seria massa demais!
Que vídeo incrível, assisti do começo ao fim. Era basicamente o que eu estava procurando aprender para os meus projetos. Pelo tamanho, sinto que fazer teste acaba sendo a forma mais segura de conseguir expandi-lo. E sim, adoraria ter ter uma aulinha de funções para tratamento de erro, sinto que posso estar no caminho errado
Estou migrando de profissão e esse tipo de vídeo me proporciona a experiência prática que eu teria se pudesse embarcar de vez na programação! Muito obrigado Diego!
Vídeo muito massa, valeu Diego! Trás também o vídeo sobre lidar com erros 🚀🚀
TOP TOP TOP. Simplesmente maravilhoso Diego. Parabéns e muito obrigado
Não sei nem expressar o quão necessários vocês são! Sério.
Muito bom! Estou no aguardo do video sobre como lidar com erros no backend
Ótima ideia fazer um vídeo sobre gerenciamento de erros, adoraria ver
Massa, rocketseat sempre +SOLID nos seus conteudos :D
Os vídeos do Diego sempre são ÓTIMOS! Vou reassistir esse.
Vídeo de responsa como sempre Rocketseat!! A diretrizes do Clean Code + SOLID + TDD geralmente me ajudam a construir um software menos acoplado e mais compreensível. Em relação aos testes, eu os coloco em uma pasta separada mas consigo localizá-los rapidamente utilizando a extensão "Side Test" do VSCode. Consigo ir dos arquivos de produção para os testes respectivos e vice-versa muito facilmente. Tem me ajudado bastante. Ele não só localiza como também já coloca os arquivos lado a lado. A minha experiência tem sido bastante positiva! Grande abraço!
Como sempre Diegão trazendo conteúdos massa, por favor traz o video sobre Functional Error Eandling.
Opa Diego, traz sim o tratamento de erros. Function Handle Error já tinha feito em um dos projetos que desenhei, mas sempre bom ver a sua visão sobre isso.
Provavelmente vou ver esse video várias vezes durante Minha jornada!!
Sdds do Diegão desenvolvendo aplicações back end
Muito massa Diego!
Conteúdo fantastico =)
Ia ser muito massa um vídeo sobre tratativa de erros 🙌
Um dia vou chegar nesse nível do Diegão. Ótimo vídeo.
Vídeo novinho do meu professor!
Super 10 de 10 , me funciono super , muchas gracias
Muito bom! 👏🏽👏🏽👏🏽
Ótimo conteúdo!!! Vou utilizar esse vitest aí pra ver se presta mesmo! hahaha'
Que video top. Gostei muito do Vitest. pretendo ver o quanto ele é performatico em algumas baterias de testes que tenho.
Acabei de mudar os testes de uma SDK que eu to criando de Jest para Vitest somente por conta desse video. Absurdamente melhor!
tudo que eu queria no momento
Vamo pra mais um!
Sou apaixonado por classes, mas para quem odeia, pode utilizar namespace, vai ficar legal para organizar as funções e por ai vai. Muito bom o vídeo Diegão, muito próximo da forma que utilizo no meu dia a dia.
VIDEO muito massa...
Sensacional esse vitest!
@dieegosf
Жыл бұрын
Valeu Danilão!
Ótimo vídeo, bem esclarecedor! Um pequeno detalhe: em 44:15 faltou mudar o toEqual() para year +1
Para quem quer saber o tema que o Diegão está usando é o Min Theme. No arquivo settings.json ele está usando as seguintes configurações: "workbench.colorTheme": "Min Dark", "editor.semanticHighlighting.enabled" : false
@mikefigueiredo4312
Жыл бұрын
Qual fonte ele ta usando?
39:40 correção, "uma das coisas chatas é lidar com datas no geral"
@joaoantoniocabral
Жыл бұрын
Lidar com datas sempre é tenso!
Bom demais
Muito massa Diego! Acho que a questão de lidar com erros é algo muito válido para se trazer pro canal e também, futuramente, sobre testes end-to-end, acho que seria uma boa também. E por último mas não menos importante: onde tu comprou essa camisa? Muito massa ela! hahahahhah
@dieegosf
Жыл бұрын
Massa, pode deixar, em breve vou trazer conteúdo sobre tudo isso sim! Hahahaha, cara, é tipo um moletom, acho que foi Zara mesmo hahaha
muito bom meeeeeesmo !
Tava super concentrado, mas do nada no 19:43 vem essa sincronia dele falando com a musica, ficou surreal e ja me veio ideia de projeto em mente, sincronizar a voz com a musica, fazendo uns fade-in/out com o lofi
Quem lida com testes no dia-a-dia de desenvolvimento sabe o quão importante é o uso de "in memory databases" que o Diego citou no vídeo. Existem algumas libs que fazem isso, tanto para bancos NoSQL quanto SQL, e a utilização deles para conseguir ler/extrair dados de um "banco de dados" mais rapidamente é algo bem interessante. Acho que um vídeo *super* legal seria sobre a integração de algum ORM (prisma) utilizando testes. Algumas questões do tipo: devo rodar as migrations do banco toda vez antes dos testes? Como fazer isso de maneira performática? Tratar isso seria muito bacana.
@dieegosf
Жыл бұрын
Pode deixar, vamos ter um vídeo assim! :)
Cara ele ensina rápido de mais ksksk as vezes nem dá pra ver o que ele faz direito
Fala Diego, seria bom também um vídeo sobre como aplicar SOLID em lambda functions com micro serviços
15:30 Preciso muito de um vídeo sobre isso
Diegão não para
Ia ser muito foda um desse pra front tmb
Conteúdo topp, com o Diegão não precisa nem por 2x de velocidade kkkkkkk
faz um video sobre containers de injeção de dependência em Node, please? Sempre vejo sobre isso mas até agora não me convenci da utilidade
it's finally ti. i'm ready to learn.
Você poderia fazer um vídeo agora implementando banco de dados e framework http com base nessa estrutura, que tal? Utilizando PrismaORM e Express, por exemplo.
gostaria de ver esse conteudo sobre o tratamento de erros
E a musica de casa de massagem no fundo... :D
15:12 Lembrando do vídeo bom que você poderia trazer como lidar com erro Function Error Handling
Estudo java mas curto suas aulas, agrega muito mesmo no java. Ainda assim é uma pena você não dar aulas de java tbm kkkk
Diego, seria interessante mostrar uma aplicação graphql e sua parte de testes. Sempre vemos testes caminhando para REST e talvez seja um conteúdo rico de informações.
@dieegosf
Жыл бұрын
Você ta lendo meu Notion de próximos conteúdos?
@lukronos1
Жыл бұрын
Ai seriam testes de integração, o graphql em si já foi testado pelo time do GraphQL. Unindo uma boa arquitetura + desacoplamento você consegue testar o seu sistema feito em graphql, sem precisar testar o graphql em si. Porque esse nós já sabemos que funciona 👍
Diegão, testa o tema que eu criei, é o FuedsKeps :D
Cara, minha mente lançou uma "throw exception" em 55min... Mas vou rever para compreender melhor, 🙃
Essa parte de repository complica bastante pra testar quando se está em uma aplicação multi-tenant, onde cada request pode ser direcionada pra um banco de dados diferente
sou iniciante no desenvolvimento de API_RESTs. Na procura de aperfeiçoamento nas redes achei este canal muito claro para os meus problemas como BeckEnd e frondEnd. Quais são os primeiros vídeos que falam de BeckEnd em conexão com o banco?🙏
Cara, eu estou estudando engenharia de software e nunca vi a utilidade dela na programação. Esse vídeo simplesmente mudou minha forma de programar. Por favor faça mais vídeo assim
@dieegosf
Жыл бұрын
Tamo junto
Muito bom a aula. Fiquei com uma duvida. Fora dos teste, num request normal eu posso reutilizar o createAppointment do use-case? para não escrever de novo.
Show demais!!! Traz um outro vídeo desses integrado com NestJS, seria show d+ !!!
@dieegosf
Жыл бұрын
Vai rolar!
@leonardoncintra
Жыл бұрын
@@dieegosf e ai ? hahaa... com nestj como ele mesmo gera as "pastas e arquivos" dele nao sei como aplicar igual voce fez no video.
Galera que curti esse tipo de teste, vou avisando que no ignite tem muito sobre. recomendo!
Deixo meu like 👍
Lembro de aprender esses padrões no Java e agora vendo o pessoal do Node seguindo para a mesma linha. Muita gente torce o nariz para o Java justamente por causa disso, mas chega uma hora que não tem para onde fugir! 😂
@dieegosf
Жыл бұрын
Esses princípios estão aí há muito tempo independente da linguagem, acho que a torcida de nariz ao Java vem mais pela parte acadêmica para o que é usado e pelo ambiente de desenvolvimento que era necessário há alguns anos, mas acho que isso já caiu por terra, não faz mais sentido criticar o Java por esses motivos :)
Quando sai a trilha atualizada de Backend do Ignite?
Como você implementaria as routes com este padrão de desenvolvimento em REST?
Diegão escolheu esse tema pra combinar com a camiseta, certeza!!!! 🤣✌
@ghoul2408
Жыл бұрын
Tu sabe qual é essa tema irmão?
@dieegosf
Жыл бұрын
@@ghoul2408 marketplace.visualstudio.com/items?itemName=miguelsolorio.min-theme
Definir os parâmetros do caso de uso como unknown ao inves de confiar nos argumentos passados pela camada de adapter não seria uma boa ? Record (ou um tipo com recursivo mais complexo)
Poderia ter uma continuação desse vídeo integrando os frameworks e banco de dados da aplicação
@dieegosf
Жыл бұрын
Vai rolar
Aí esse professor é lindo, ave maria kkkkk
🔝
Vídeo ótimo! Acho que pode rolar uma continuação. Por exemplo, essa primeira parte você ensinou como criar a aplicação desacoplada de frameworks, ORMs e bancos de dados, no próximo passo você pode ensinar a melhor forma de integrar eles na aplicação. Utilizando Express ou Nest, TypeOrm ou Prisma, etc. Acho que pode ficar bem legal!
@dieegosf
Жыл бұрын
Pretendo fazer isso sim :)
Qual a build mais performática pra Next.js?
Faz o vídeo sobre erros por favore.
E o video do Functional error Handling, vai nascer ? @RocketSeat @Diego
Alguém configurou o eslint o meu não mostra todos as opções que ele mostrou no vídeo
essa é só a ponta do icebarg para quem faz o curso de node da rocket, rs
Alguém sabe qual tema do vscode ele tá usando?
Braboo conteúdo incrível como sempre padrão rocketseat, só queria saber o tema do vscode que o Diegão tá usando hah
@ribeiro.evandro
Жыл бұрын
Ele fala no começo do vídeo, é o "Min dark", mas não encontrei ele na lista...
@emersonsmm
Жыл бұрын
É o Min Theme.
Sugestão de vídeo: Responsividade com Tailwind CSS
@dieegosf
Жыл бұрын
Boooa ideia!
Queremos continuação
@dieegosf
Жыл бұрын
Vai rolar!
Qual o tema usado no vscode?
A parte da função dentro do repositorio que procura por um conflito entre as datas, não deveria ser da responsabilidade da entidade ja que trata-se de uma regra de negocio ? Creio que ficaria melhor isolar essas regras na parte de validação ! Antes de mais nada agradeço imensamente pelo o conteudo voltado a essa parte de arquitetura da aplicação . Parabéns !
Also, I don't like idea of coloring again and again. In soft soft mobile, just pick a color and it colors the track, the soft, and the setuper
Estou a 3 horas (sou aprendiz ok) tentando resolver uma falha no ultimo teste.... para agora perceber que esqueci um await por isso não instanciava e não aparecia no overlapping... kkk
+ 'bout TDD 👌
Tipos de regras de negócio: 36:56 Na literatura podemos encontrar como: Invariates: regras que sempre devem ser aplicadas, por exemplo, nome do cliente sempre deve ser informado, independente de qual for o contexto. Variantes: regras que dependem do contexto, por exemplo, é obrigatório que o cliente tenha um email para realizar uma ação dentro do sistema.
@dieegosf
Жыл бұрын
Valeu pela dica!
This ended up in my recommended.
Nossa faço isso demais primeiro penso no banco de dados kakakkaka
Fala Diego e pessoal da Rocket, hoje onde trabalho temos diversos projetos complexos, com estruturas de dados complexas, mas afinal eu gostaria de saber como podemos melhorar as validações em escala em um momento do projeto onde as verificações vão aumentando infinitamente, como vocês fariam para separar todo esse código? Por exemplo hoje nós criamos uma pasta dentro do diretório onde a classe está e a chamamos de validators, e então criamos outras classes que contém todo esse código validador. O objetivo deste comentário não é saber se está certo ou errado mas sim entender e compreender outras formas/maneiras de lidar com isso.
@dieegosf
Жыл бұрын
Fala Edinei, é importante entender antes sobre o tipo de validação que estamos falando, existem validações a nível de domínio e essas podem ficar junto às entidades da sua aplicação, existem validações que ficam nos casos de uso, geralmente aquelas que dependem de camadas externas e existem validações que podem acontecer na camada HTTP mesmo da aplicação, então depende muito do tipo de validação pra saber o melhor local pra colocar. No vídeo por exemplo, você percebe que eu não permito que um agendamento seja criada com uma data do passado, isso é uma validação na entidade, é algo que independe de framework ou qualquer camada HTTP, existe a validação que valida que agendamentos não podem ser criados no mesmo horário, isso é uma validação que acontece no caso de uso porque depende do banco de dados e, ainda assim, eu poderia ter validações acontecendo numa futura camada HTTP se eu achar importante pro projeto (ou fazer apenas no front-end se o back-end estiver bem preparado pra lidar com possíveis erros).
agora ensina como que acopla isso aí, por favor.
Qua tema é esse ? To doido pra saber