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
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
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
Eu assisto aos vídeos do Diego e fico maravilhado ao ver ele perseguindo boas práticas como eu, o nível da nossa organização (chatisse) é extremo! hahaha parabéns, vc é o melhor!
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
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!
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!
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
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.
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) { }
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
15:35 em 2024 vindo aqui pra perguntar se saiu esse video sobre tratamentos de erros. Eu literalmente sempre tenho essa duvida de como arquitetar essa camada de tratamento de erros, e os retornos e throws nas minhas APIs.
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.
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
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.
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 👍
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! 😂
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 :)
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?🙏
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.
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.
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.
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.
Achei a maneira com que implementou a abstração dos dados sensacional !! No entanto, me surgiram dúvidas sobre como utilizar esse estrutura com banco de dados, ao editar uma informação na instância do objeto, altera-se no banco de dados? A questão é, como se montaria uma instância através das informações do banco de dados?
As entidades da nossa aplicação nem sempre são mapeadas diretamente para tabelas no banco de dados, cada camada da aplicação pode ter uma representação diferente da entidade, ou seja, na camada de banco de dados podemos ter a mesma entidade de agendamento, mas com um formato diferente e essa é a entidade a qual a gente salva no banco, faz as operações, etc, e o que precisamos apenas daí é uma forma de converter uma entidade em outra, ou seja, uma entidade de uma camada para outra e isso a gente faz usando um conceito de mapper, dá uma olhada nesse exemplo: github.com/diego3g/umbriel/blob/master/src/modules/broadcasting/mappers/MessageMapper.ts
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
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 !
Diegão, o que tu ta usando no terminal para ficar com essas infos? Tipo, "is v1.0.0 via v16.15.0 on cloud(sa-east-1)", no caso da cloud, você está conectado em uma cloud da aws ?
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)
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!
Meu foco total agora é na de React ainda, até porque na trilha de Node.js temos menos coisas desatualizadas. Logo após vou pra de Node. Meu grande objetivo é ainda esse ano já estar produzindo os conteúdos pra Node.
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
Aí Diego, eu vim aqui criticar um ponto e você foi super solícito em ouvir e agora preparou esse conteúdo super didático e muito muito bom. Acredito que eu deva vim aqui elogiar seu trabalho já que eu soube vim da outra vez criticar. Parabéns, você te a didática ótima e eu aprendo muito com você. Parabéns de verdade pelo conteúdo incrível
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
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
Faz um vídeo para falar mais sobre a melhor maneira de lidar com os erros no back-end (functional error handling) por favor!!! 😀
fala murilo, da uma olhada no padrão EITHER para lidar com erros, é super interessante
up!
Gostaria também
Perfeito, seria um ótimo video
up pra esse vídeo, vai ajudar bastante
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
Não sei nem expressar o quão necessários vocês são! Sério.
Vídeo incrével! Meus parabéns! Seria bacana uma mini série criando uma aplicação completa totalmente do zero. Quem apoia? Up!
O NLW é exatamente isso ai, vai ter um dia 16/01/2023
Esse tipo de vídeo é MUITO MASSA!
Ver na pratica o desenvolvimento, o fluxo e a forma da pessoa pensar é muito útil.
Eu assisto aos vídeos do Diego e fico maravilhado ao ver ele perseguindo boas práticas como eu, o nível da nossa organização (chatisse) é extremo! hahaha parabéns, vc é o melhor!
Será ótimo ter uma aula de funções para tratamento de erro 🔥
Aprendi bastante por aqui sobre isso: ua-cam.com/video/SnxAq9ktyuo/v-deo.html&ab_channel=GuidoCerqueira
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
Diegão, essa parada de lidar com erros que você comentou seria massa demais!
Que top, tava querendo muito ver o Vitest em prática e você trouxe nesse vídeo! \o/
Ótima ideia fazer um vídeo sobre gerenciamento de erros, adoraria ver
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!
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!
Massa, rocketseat sempre +SOLID nos seus conteudos :D
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
Qual fonte ele ta usando?
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.
Pode deixar, vamos ter um vídeo assim! :)
Vídeo muito maneiro! Agora quero mais vídeos sobre Node, eu imploro💜🚀
Sensacional esse vitest!
Valeu Danilão!
Simples e super didático. Muito boa essa abordagem de TDD usando alguns princípios de SOLID e clean architecture!
Como sempre Diegão trazendo conteúdos massa, por favor traz o video sobre Functional Error Eandling.
Ótimo vídeo, bem esclarecedor!
Um pequeno detalhe: em 44:15 faltou mudar o toEqual() para year +1
Acabei de mudar os testes de uma SDK que eu to criando de Jest para Vitest somente por conta desse video. Absurdamente melhor!
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) { }
Valeu por sinalizar aqui, Fagner
Ótimo exemplo de arquitetura para iniciar um projeto. Seria ótimo ver um sobre o tratamento de erros!
TOP TOP TOP. Simplesmente maravilhoso Diego. Parabéns e muito obrigado
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
Tamo junto
Muito bom! Estou no aguardo do video sobre como lidar com erros no backend
15:35 em 2024 vindo aqui pra perguntar se saiu esse video sobre tratamentos de erros. Eu literalmente sempre tenho essa duvida de como arquitetar essa camada de tratamento de erros, e os retornos e throws nas minhas APIs.
Os vídeos do Diego sempre são ÓTIMOS! Vou reassistir esse.
Provavelmente vou ver esse video várias vezes durante Minha jornada!!
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.
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
Massa, pode deixar, em breve vou trazer conteúdo sobre tudo isso sim! Hahahaha, cara, é tipo um moletom, acho que foi Zara mesmo hahaha
Vídeo muito massa, valeu Diego!
Trás também o vídeo sobre lidar com erros 🚀🚀
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.
Você ta lendo meu Notion de próximos conteúdos?
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 👍
Sdds do Diegão desenvolvendo aplicações back end
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! 😂
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 :)
tudo que eu queria no momento
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?🙏
Quando sai a trilha atualizada de Backend do Ignite?
Muito Bom, obrigado pelo seu trabalho à comunidade
Que video top. Gostei muito do Vitest. pretendo ver o quanto ele é performatico em algumas baterias de testes que tenho.
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.
Conteúdo fantastico =)
39:40 correção, "uma das coisas chatas é lidar com datas no geral"
Lidar com datas sempre é tenso!
Ia ser muito massa um vídeo sobre tratativa de erros 🙌
Vídeo novinho do meu professor!
Muito massa Diego!
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.
Valeu pela dica!
Super 10 de 10 , me funciono super , muchas gracias
Diegão escolheu esse tema pra combinar com a camiseta, certeza!!!! 🤣✌
Tu sabe qual é essa tema irmão?
@@ghoul2408 marketplace.visualstudio.com/items?itemName=miguelsolorio.min-theme
15:12 Lembrando do vídeo bom que você poderia trazer como lidar com erro Function Error Handling
Show demais!!!
Traz um outro vídeo desses integrado com NestJS, seria show d+ !!!
Vai rolar!
@@dieegosf e ai ? hahaa... com nestj como ele mesmo gera as "pastas e arquivos" dele nao sei como aplicar igual voce fez no video.
15:30 Preciso muito de um vídeo sobre isso
Um dia vou chegar nesse nível do Diegão. Ótimo vídeo.
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
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.
Muito bom! 👏🏽👏🏽👏🏽
Cara ele ensina rápido de mais ksksk as vezes nem dá pra ver o que ele faz direito
it's finally ti. i'm ready to learn.
Conteúdo topp, com o Diegão não precisa nem por 2x de velocidade kkkkkkk
Ótimo conteúdo!!! Vou utilizar esse vitest aí pra ver se presta mesmo! hahaha'
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.
Achei a maneira com que implementou a abstração dos dados sensacional !! No entanto, me surgiram dúvidas sobre como utilizar esse estrutura com banco de dados, ao editar uma informação na instância do objeto, altera-se no banco de dados? A questão é, como se montaria uma instância através das informações do banco de dados?
As entidades da nossa aplicação nem sempre são mapeadas diretamente para tabelas no banco de dados, cada camada da aplicação pode ter uma representação diferente da entidade, ou seja, na camada de banco de dados podemos ter a mesma entidade de agendamento, mas com um formato diferente e essa é a entidade a qual a gente salva no banco, faz as operações, etc, e o que precisamos apenas daí é uma forma de converter uma entidade em outra, ou seja, uma entidade de uma camada para outra e isso a gente faz usando um conceito de mapper, dá uma olhada nesse exemplo: github.com/diego3g/umbriel/blob/master/src/modules/broadcasting/mappers/MessageMapper.ts
@@dieegosf, valeu pela aula. Vou usar essa estrutura no próximo projeto 🚀🚀
VIDEO muito massa...
Vamo pra mais um!
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
E o video do Functional error Handling, vai nascer ? @RocketSeat @Diego
gostaria de ver esse conteudo sobre o tratamento de erros
Diegão, testa o tema que eu criei, é o FuedsKeps :D
Galera que curti esse tipo de teste, vou avisando que no ignite tem muito sobre. recomendo!
muito bom meeeeeesmo !
Cara, minha mente lançou uma "throw exception" em 55min... Mas vou rever para compreender melhor, 🙃
Como você implementaria as routes com este padrão de desenvolvimento em REST?
Diegão não para
E a musica de casa de massagem no fundo... :D
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 !
Fala Diego, seria bom também um vídeo sobre como aplicar SOLID em lambda functions com micro serviços
Faz o vídeo sobre erros por favore.
Diegão, o que tu ta usando no terminal para ficar com essas infos? Tipo, "is v1.0.0 via v16.15.0 on cloud(sa-east-1)", no caso da cloud, você está conectado em uma cloud da aws ?
Pois é vi isso também, talvez esteja usando um daqueles workspaces?
Ele está usando provavelmente o zsh/oh-my-zsh com algum tema que mostre essas informações, caso disponível
deve ser o Powerlevel10k
Eu utilizo o oh-my-zsh com o tema spaceship, ele traz essas informações de versão do ambiente, branch e tal
@@ilovemacross Eu uso o spaceship mas não mostra isso tudo
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)
Qual o tema usado no vscode?
Ia ser muito foda um desse pra front tmb
agora ensina como que acopla isso aí, por favor.
Qua tema é esse ? To doido pra saber
Qual a build mais performática pra Next.js?
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!
Pretendo fazer isso sim :)
Poderia ter uma continuação desse vídeo integrando os frameworks e banco de dados da aplicação
Vai rolar
Tem previsão para atualizar a trilha de node?
Meu foco total agora é na de React ainda, até porque na trilha de Node.js temos menos coisas desatualizadas. Logo após vou pra de Node. Meu grande objetivo é ainda esse ano já estar produzindo os conteúdos pra Node.
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
Estudo java mas curto suas aulas, agrega muito mesmo no java. Ainda assim é uma pena você não dar aulas de java tbm kkkk
+ 'bout TDD 👌
Aí Diego, eu vim aqui criticar um ponto e você foi super solícito em ouvir e agora preparou esse conteúdo super didático e muito muito bom.
Acredito que eu deva vim aqui elogiar seu trabalho já que eu soube vim da outra vez criticar.
Parabéns, você te a didática ótima e eu aprendo muito com você. Parabéns de verdade pelo conteúdo incrível
Tamo junto, Carlos
Sugestão de vídeo: Responsividade com Tailwind CSS
Boooa ideia!
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
This ended up in my recommended.
Deixo meu like 👍
pelo amor de deus, me passa as suas extensões de tema, icon e texto plss