🎯 SOLID + Clean Architecture: Projeto completo com NodeJS, Typescript, Express e Prisma

  Рет қаралды 7,817

Doutor Waka

Doutor Waka

Күн бұрын

Пікірлер
@rubensl.ferreira1113
@rubensl.ferreira1113 7 ай бұрын
Um vídeo sobre nodejs + ts + prisma + clean arch. e solid é quase uma jóia rara no youtube, e para fechar com chave de ouro já deixou o link do repositório. Você não é um professor, é um prefeito. +1 inscrito 👏
@vitosnatios
@vitosnatios Ай бұрын
seu projeto ficou muito bom, vou passar um tempo na repo estudando e assimilando as coisas
@mentesolta7652
@mentesolta7652 20 күн бұрын
Doutor muito obrigado por esse aulão 😇😇
@digransalibian6573
@digransalibian6573 3 ай бұрын
boa tarde professor! que aula maravilhosa. o prezado tem algum video com fonte do frontend com react axios typescript com solid e clean code? grato! Abraço!
@doutorwaka
@doutorwaka 2 ай бұрын
Olá. Muito obrigado! Infelizmente algo nessa linha para front eu ainda não tenho. Mas vai ficar no radar =)
@ngungadev
@ngungadev 4 ай бұрын
Valeu @Doutor Waka, acompanhei o video , o bun e elysiaJS, sofri mas aprendi , deu certo como no express mesmo kkkk, obrigado! vou revisar mais sobre SOLID + Clean Architecture
@doutorwaka
@doutorwaka 4 ай бұрын
Top amigo! Que bom que você conseguiu acompanhar!
@thiago8180
@thiago8180 5 ай бұрын
Muito bom o vídeo, segui a aula codando, todos os passos deram certos, sem erros, parabéns
@lavdev
@lavdev Ай бұрын
Could yout please explain to me: how to manage relationship between Entity? Many thanks❤
@doutorwaka
@doutorwaka Ай бұрын
Hey there! Which kind of relationship are you talking about? Further, are you doubt either at domain level or at repository level?
@vallento7760
@vallento7760 4 ай бұрын
Sensacional! Eu fiz um projeto em java onde abordei o uso do DDD(domain-driven-designe) e Hexagonal Architecture afim de aprender um pouco sobre. Agora eu voltei para relembrar um pouco de TypeScript e achei esse video maravilhoso. Obviamente vou precisar estudar um pouco o que foi feito, porem para quem tem uma noção basica essa foi uma aula muito boa! Muito obrigado por se dispor a fazer esse tipo de conteudo, ganhou um inscrito o/
@doutorwaka
@doutorwaka 4 ай бұрын
Opa amigo! Que bom que o conteúdo te ajudou! Muito obrigado pelo comentário e pela inscrição! Existe algum assunto que você gostaria de ver aqui no canal?
@dev.dmsviana
@dev.dmsviana 8 ай бұрын
Ótima aula como sempre, professor. No aguardo de uma aula com o mesmo assunto mas dessa vez com java.
@cerebeloboladao7190
@cerebeloboladao7190 6 ай бұрын
Ótima aula, professor. Como ficariam as tratativas de erros no modelo dessa aplicação? É possível fazer usando um middleware do express, ou seria feito usando try catch dentro de cada arquivo?
@doutorwaka
@doutorwaka 5 ай бұрын
Excelente pergunta amigo. Para responder ela de forma satisfatória eu precisaria de um vídeo inteiro. Mas sim, cabe dentro de um middleware. Daria pra pensar em uma estratégia de exception advice. Eu já falei um pouco sobre isso no spring... Aqui no canal o/
@VictorEmannuel
@VictorEmannuel 7 ай бұрын
Professor, uma segunda dúvida, no caso de um, estou usando esse projeto como um norteador para uma api que realizarei, tirando uma api legada anterior para uma atualizada em node, porem quando vc criou as classes concretas realizando a injeção de dependência percebi que para dois endpoints o número de instâncias foram pequenas, mas no caso de um projeto real que tenha 30, ou 40 endpoints de controladores/rotas distintas, essa seria a melhor forma para implementar?
@doutorwaka
@doutorwaka 7 ай бұрын
Você pode separar ainda em classes/métodos. Por ex, lá no main você chama um "createRepositories"... Que devolve um mapa de repositórios. Daí você chama um "createUsecases" passando o mapa de repositórios e recebe um mapa de usecases... Daí finalmente passa esse mapa para um "createRoutes". Daí vai dividindo de acordo que achar necessário. Em um projeto que estou trabalhando, separei as dependências de cada rota em "providers". Então crio um "rotaXProvider" e passo ela pra factory que me devolve a rotaX. Isso facilitou bastante lidar com as dependências.
@FranciscoEnderson-k3i
@FranciscoEnderson-k3i 4 ай бұрын
@@doutorwaka Olá, professor, esse projeto que está trabalhando que implementou essa solução é público? se sim, onde podemos vê-lo?
@FranciscoEnderson-k3i
@FranciscoEnderson-k3i 4 ай бұрын
@@doutorwaka Pegando o gancho, o ideal é ja instanciar todas as classes de controladores no main ou apenas quando houver uma requisição para uma determinada rota?
@JonataSTutoriais
@JonataSTutoriais 6 ай бұрын
Perfeito o vídeo, parabéns!
@doutorwaka
@doutorwaka 6 ай бұрын
Muito obrigado! Espero ter contribuído!
@AnthOo0ny
@AnthOo0ny 5 ай бұрын
Ótima aula, Parabéns! Qual o vscode theme que o senhor está usando ? Grande abraço!
@doutorwaka
@doutorwaka 4 ай бұрын
Eita, eu nem lembro qual eu usava na época.
@richardwillian3967
@richardwillian3967 6 ай бұрын
Professor, uma dúvida! Em casos onde eu possuo entidades mais complexas, que possuem um "Relacionamento", por exemplo. Qual a melhor estratégia para converter o "Modelo do Prisma" para a "Minha Entidade" e retornar para minha camada de serviço ? Se eu for fazer um ".with" em cada uma dessas classes, vai ficar algo bastante verboso, eu sempre fico na dúvida do que é melhor... E a maioria dos projetos que vejo por aí, são usados os próprios modelos do prisma, e acho que isso deixa um acoplamento muito grande com o ORM. Outra dúvida, um pouco mais filosófica, como definir qual a melhor forma ? Por exemplo, eu poderia, fazer um "EntitySchemaDto" que teria dependência com o "EntityPrismaModel" e do "EntitySchemaDto" eu converteria para a minha "Entity" Eu poderia fazer uma "Factory" que seria responsável por tranformar o "EntityPrismaModel" em uma "Entity". Enfim, várias formas de fazer, mas como definir qual é a melhor ? Como vc pensa sobre isso ?
@doutorwaka
@doutorwaka 6 ай бұрын
Excelente pergunta e sinceramente merece um vídeo inteiro a respeito. O correto é ter de fato o with nas entidades e conseguir converter o que vier do banco para estas entidades bem como quando for salvar, conseguir converter de entidade para modelo prisma. Utilizaro mesmo modelo para salvar no banco e como entidade do sistema pode ser extremamente problemático a longo prazo. Daqui a pouco lógica de banco de dados e lógica de negócio estarão todas misturadas e será impossível desacoplar. Eu gosto muito de criar mappers que possuem um método estático que consegue converter entidade em modelo e modelo em entidade. Ex: - user-entity-to-user-model.mongo.mapper.ts - user-model-to-user-entity.mongo.mapper.ts Daí no geral esses métodos recebe o modelo e converte em entidade. No caso de coisas bem mais complexas, eles podem até receber mais de um modelo para converter em uma única entidade. Espero ter ajudado =)
@richardwillian3967
@richardwillian3967 6 ай бұрын
@@doutorwaka Pô, que legal, professor! Se realmente virar um vídeo seria bem interessante, principalmente essa parte do "o que é melhor fazer ?", parece que não existe uma bala de prata, mas provavelmente existe um consenso na comunidade do que é o melhor. Quanto ao mapper, eu sem querer acabei fazendo algo parecido kk Mas chamei de "EntitySchema". Minha camada do Repositório recebe uma "Entity", e dentro do meu método, eu converto a "Entity" em "Prisma Model" passando por essa classe Schema num método static, "toSchemaModel(Entity)". E, quando quero retorna para a Camada de serviço, faço o mesmo, dentro do repositório, eu chamo outro método static "toEntity(PrismaModel)" que saberá converter para a Entity. É parecido com o Mapper, mas teve outro nome kk Isso que é foda, em Node parece que tudo é certo pq cada um faz de um jeito.
@doutorwaka
@doutorwaka 6 ай бұрын
É bem isso que você fez mesmo. Você fez um mapeador =). A ideia é exatamente essa.
@dev-isaac-gomes
@dev-isaac-gomes 4 ай бұрын
poderia trazer um com DDD + clean arch as vezes as vezes fica dificil de encaixar na cabeça como ambos ficam juntos com a entidade sendo baseada no DDD
@doutorwaka
@doutorwaka 4 ай бұрын
Me explica melhor qual é a dúvida. Sua dúvida é em relação a mapear as entidades e objetos de valores e saber onde eles residiriam com clean architecture ou é algum outro ponto?
@dev-isaac-gomes
@dev-isaac-gomes 4 ай бұрын
@@doutorwaka minha dificuldade fica no quando iniciar a entidade no sistema e como passar para o ORM pq geralmente podemos ter tipo Address.schema.ts (orm) Address.entity.ts (entidade) as vezes como ambos vão se relacionar ficam meio esquisito de entender é algo que ja fiz mas, não domino 100%
@doutorwaka
@doutorwaka 4 ай бұрын
Entendi. Bom, basicamente você precisa ter um mapeador de entidade para modelo e um mapeador de modelo para entidade. Esses mapeadores vão trabalhar no repositório. Portanto, os métodos do "address.repository.ts" recebem uma entidade, transformam em modelo e mandam para o banco. Na hora de recuperar esse dado, ele recupera um modelo, transforma em entidade e envia para o caso de uso. Dessa forma, o fluxo sempre fica: caso de uso > repositório > banco de dados
@diegoalvesferreira8481
@diegoalvesferreira8481 5 ай бұрын
Qual o nome da extensão que usa pra parte ali das pastas?
@Chico6metal
@Chico6metal 5 ай бұрын
quero saber tbm
@doutorwaka
@doutorwaka 5 ай бұрын
Acho que é a material icon theme... Coisa assim.
@caquintella
@caquintella 2 ай бұрын
Tá bonito isso
@doisbits145
@doisbits145 3 ай бұрын
ganhou um inscrito pro resto da vida
@doutorwaka
@doutorwaka 3 ай бұрын
Seja bem vindo!
@raykavin.meireles
@raykavin.meireles 4 ай бұрын
Poderia fazer um outro video usando Golang
@doutorwaka
@doutorwaka 4 ай бұрын
Anotado!
@SaFeXTech
@SaFeXTech 2 ай бұрын
Muito bem feito e tudo. Mas eu acho muito horrível, ter que em vários arquivos refazer a estrutura dos dados da entidade novamente. É uma redundância absurda em vários pontos passar de novo e de novo os campos da entidade... Tem de haver uma forma mais simples mantendo os design patterns.
SOLID + MVC: Projeto completo com NodeJS, Typescript, Express e Prisma
1:18:44
Criando um projeto Spring Boot com Arquitetura Limpa
29:09
Giuliana Bezerra
Рет қаралды 21 М.
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
Clean Architecture in Next.js: A Complete Implementation Guide
53:07
Desafio BACKEND PARA DEV JUNIOR com SPRING BOOT
25:02
Matheus Leandro Ferreira
Рет қаралды 3 М.
Express JS with TypeScript - Setup, Examples, Testing
1:20:13
Anson the Developer
Рет қаралды 45 М.
Arquitetura de Monólito Modular na prática com Nest.js - com Victor Alisson
1:06:33
Vamos Falar Sobre Arquitetura Limpa?
18:48
Cod3r Cursos
Рет қаралды 10 М.
Clean Architecture in TypeScript
58:19
Donny Roufs
Рет қаралды 27 М.
Tratamento de erros no Express.js com TypeScript
43:25
Guido Cerqueira
Рет қаралды 14 М.