Nest Resolve o Maior Problema do DEV?

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024
  • Inscreva-se aqui: bit.ly/3RM2fru
    ◆ formacao.dev ◆
    ◆ www.cod3r.com.br/ ◆
    Com mais de 420 mil alunos, a Cod3r é uma das principais escolas de tecnologia do País. Um dos seus produtos mais importantes é a Formação DEV, uma formação completa que tem o objetivo de preparar os profissionais para o mercado, desde iniciantes no mundo da programação ou profissionais que estão migrando de carreira, a arquitetos de software. A Formação DEV conta com uma solução completa para te ajudar a construir soluções inovadoras e enfrentar os desafios da era digital.
    ◆ Vem fazer parte da nossa comunidade:
    Discord: / discord
    Siga a Cod3r nas redes sociais:
    RUclips: bit.ly/2LJdjpX
    Instagram: bit.ly/3bAStnX
    Facebook: bit.ly/2MWAn5p
    LinkedIn: bit.ly/3i3pfPC

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

  • @jhonatanfrade3763
    @jhonatanfrade3763 3 месяца назад +8

    Melhor insight: "Você é o responsável pela arquitetura"

  • @deyvisonborges
    @deyvisonborges 3 месяца назад +8

    Geralmente eu separo em Core e App, onde toda logica agnostica do negocio fica na pasta core com Typescript e, o Nest (na camada de App) somente consome e implementa, tendo assim, uma arquitetura mais purista.

  • @Mk-lc6pg
    @Mk-lc6pg 3 месяца назад +4

    Pela minha experiência a maioria das aplicações que trabalhei em NodeJs foram feitas em express com algo parecido com no máximo um MVC, muito por falta de conhecimento dos próprios devs mesmo. Creio que por JS ser muito acessível, então tem 10000000 de tutoriais de criar uma API básica que se quer pensa em arquitetura.
    Então creio que nesse quesito o Nest seja interessante, principalmente se você ainda não tem conhecimento de arquitetura, patterns etc, você começa a entender como e porque alguns patterns são usados.
    Mas claramente, se você já tem conhecimento de arquitetura e tem um plano bem definido para a aplicação, talvez ele vai mais atrapalhar do que ajudar.

  • @antonioalexandrealonsodesi4185
    @antonioalexandrealonsodesi4185 3 месяца назад +2

    Framework: Um framework é uma estrutura fundamental para a criação de uma aplicação. Alguns frameworks são mais restritivos quanto ao que é permitido fazer, e cada um possui um modus operandi próprio. Se você não se adapta à estrutura de um determinado framework, sente-se limitado, ou se ele não oferece recursos que justifiquem suas limitações, e exige muito código boilerplate que você considera desnecessário, é aconselhável buscar outra opção. Tentar adaptar um framework ao seu estilo de programação, em vez de ajustar-se ao modo de operação proposto pelo framework, pode ser uma tarefa árdua e, por vezes, frustrante. O mais indicado é usar o framework conforme ele foi concebido. Se essa abordagem não atender às necessidades do seu projeto, o mais sensato é buscar uma solução alternativa.
    Quando eu programava em PHP, tinha dificuldade em me adaptar à maioria dos frameworks, pois eram muito rígidos e, para realizar tarefas simples, precisava criar muitas classes e escrever muito código apenas para que o framework se orientasse em suas próprias estruturas. Por isso, desenvolvi meu próprio framework MVC, seguindo o que considerava mais adequado para tornar meu trabalho menos penoso. Quase dez anos depois, já trabalhando com Java, descobri o Spring Boot e fiquei encantado, pois ele seguia a mesma filosofia do framework PHP que eu havia criado para facilitar meu trabalho. Atualmente, continuo utilizando o Spring Boot na programação Java e estou expandindo meus horizontes, explorando frameworks JavaScript que rodam com Node e TypeScript.
    Resumo: Concordo que um framework deve ser flexível e permitir a adoção de diferentes arquiteturas, com poucas imposições. No entanto, se estamos trabalhando em um projeto que já utiliza um determinado framework, devemos procurar abraçá-lo e não lutar contra ele.

  • @moimsk8
    @moimsk8 3 месяца назад +2

    O NestJS força o programador a seguir um design pattern de início, mas ele pode ser extensível, como se fosse o Rails do Ruby. Eu particularmente prefiro utilizar o Express ou o Fastify direto para criar as rotas HTTP na mão, implemento os padrões UseCase para as regras de negócio e Repository para a persistência dos dados, sem esquecer de injeção de dependências onde eu utilizo o Inversify (mas podem utilizar o Tsyringe que faz a mesma coisa).
    A grande vantagem do Nest é não se preocupar com tudo isso que falei, mas é preferência.

  • @BrunolimaMe
    @BrunolimaMe 3 месяца назад +1

    Falando em PHP, já vi muita vaga, até pagando bem, mas não para trabalhar com PHP, mas sim com Laravel. Isso bate na tecla que você falou, do framework ditar como você deve organizar e o que você deve usar.
    Não desmerecendo o Laravel em nada, mas isso é uma coisa que nunca gostei nele, ou você faz como ele determina ou não funciona

  • @brunocotto
    @brunocotto 3 месяца назад

    Super palpável utilizar DDD e Clean Arch com o NestJS. Inclusive na empresa que trabalho atualmente estamos utilizando ele, mas, mantendo o domínio/regras de negócios isoladas.

  • @paulocavalheirodeveloper1213
    @paulocavalheirodeveloper1213 3 месяца назад +1

    Sai do loopback e fui estudar o Nest, além de ter uma baixa curva de aprendizado, ele meio que te força se manter nos trilhos corretos em questão de padrão de projetos.

  • @WillianMattos
    @WillianMattos 3 месяца назад

    Penso que só o fato de usar um decorator em uma entity já polui o código com a framework. Já passei pela experiência de criar tudo na mão, incluindo mappers, etc.. mas profissionalmente nunca vi um domínio verdadeiramente puro, seja em Java, Kotlin ou C# .Net. O NestJs é basicamente a mesma coisa, só facilita um pouco mais com o conceito de módulos na hora de fazer inversão de dependência.
    Na prática, se o cara quiser criar 70 milhões de pastas divididas entre camadas pra implementar um cqrs, ele vai conseguir no Nest também 😅

  • @Bambatera
    @Bambatera 2 месяца назад

    Experiência prática: a alguns anos, foi desenvolvido um framework para uso nos projetos de software da UnB, a ideia foi muito boa, a abstração era pra agilizar o desenvolvimento de aplicações web usando JSF, porém, teve um alto custo de manutenção, os componentes ficaram muito acoplados o que dificultou bastante as correções de bugs e evoluções nos projetos.
    Ja dizia um professor meu, não reinvente a roda!
    Nao sou contra novas abstrações pra facilitar ou melhorar a produtividade, não concordo em acoplamento demais, isso apneas atrapalha!

  • @AlvaroDaviSAlves
    @AlvaroDaviSAlves 3 месяца назад +1

    Eu gosto do Nest porque ele te dá a opção de seguir o padrão dele mas ainda te deixa controlar quase tudo. E o que ele não me deixa controlar é justamente o que eu evito.
    Fiz um boilerplate que nasceu sem Nest e na hora de migrar para Nest foi super de boa e resolveu problemas de transpilação e performance, mas tento sempre manter a aplicação de forma que conseguiria facilmente reverter e retirar o Nest.
    Uma das coisas que evito é usar bibliotecas de logging, cloud SDK e ORM de dentro do Nest. Também evito deixar toda a complexidade das validações de input nos decorators do class-validator, apenas deixo validações básicas, as mais complexas ficam em módulos de schema que usam Joi (pelo controle maior das validações) ou Zod (pela tipagem dos schemas). Se deixasse no Nest ia perder tudo caso parasse de usar ele.
    Gosto de organizar por contextos, isso me facilitou na migração pro Nest e facilita pra desfazer a migração.
    Tudo que é básico para a aplicação rodar (banco de dados, cloud, logging, configs) fica no módulo Core.
    A camada de Domain fica separada e independe dos models de banco de dados, contém as entidades e enums da aplicação.
    As regras de negócio ficam nos usecases e services do módulo App.
    Os módulos globais usados nos controllers do App ficam em API.
    Os utils, helpers e constantes usados em qualquer outro módulo ficam no módulo Common.
    Eventos assíncronos como filas e websockets ficam na camada Events.

  • @allanfarias1988
    @allanfarias1988 3 месяца назад +3

    Show..recado dado de quem entende do assunto...

  • @IsraelCena
    @IsraelCena 3 месяца назад +1

    Mas a ideia de ter um framework, não é justamente terceirizar ?

  • @henzoarruda4582
    @henzoarruda4582 2 месяца назад

    Agora a pergunta que não quer calar, quando sai um curso de Nest.js na plataforma Cod3r?

    • @cod3r
      @cod3r  2 месяца назад

      Fala, Enzo. No momento não temos previsão para esse curso na plataforma da Cod3r 👾

  • @iteract
    @iteract 2 месяца назад

    Essa semana da formacao dev, é para quem ´já tem experiência?

    • @cod3r
      @cod3r  2 месяца назад +1

      É preciso de conhecimento em HTML, CSS e JavaScript 👾

  • @admerg
    @admerg 3 месяца назад

    show, o curso de java do leonardo mudou minha vida profissional.

    • @cod3r
      @cod3r  3 месяца назад

      Que legal, Admerg! Ficamos felizes em fazer parte da sua história profissional! 👾

  • @helder-rangel
    @helder-rangel 3 месяца назад

    😀

  • @noriller
    @noriller 3 месяца назад

    Eu diria que é menos arquitetura e mais "organização de pastas".
    Fora que, acho que o que o Nest faz que outros frameworks pecam é que ele, por si só, não "faz muita coisa". Isso porque você pode simplesmente trazer as libs que você quer sem depender de algo do Nest.
    Tem uns framework que "tem tudo" o que precisa, tudo feito pelo mesmo framework. Dai a dependencia fica maior, porque as vezes é tão acoplado que não tem como rodar o que precisa fora do contexto do framework (exemplo: adonis).
    Uma possível "separação" com o Nest seria traumatizante, mas se está usando o prisma, koa, vitest... fica um pouco mais simples de separar o que é lib, do que é nest, do que é "seu código".

  • @thiagomotadev3116
    @thiagomotadev3116 3 месяца назад

    esse esquema de ter uma arquitetura base que você pode modificar de acordo com o seu cenário/demanda vejo sendo muito bem feito no .NET Core, o framework em si "obriga" seguir suas regras somente na parte de interface com o mundo externo (seja api ou web), que a meu ver é uma mão na roda, visto que principalmente as apis já possuem uma estrutura definida de funcionamento e protocolos (http + json em sua maioria) e isso te deixa livre para cuidar do mais importante que é a estrutura e os códigos. fora a questão da injeção de depedências que pra mim é a mais perfeita de todas que já conheci, sabendo o que é sigletown, scoped etc. o resto o framework faz por você com excelência, voltando novamente ao ponto de que você tem que se preocupar com o código, arquitetura e regras de negócios. me parece um cenário todo bem estruturado/fechado e aberto a customizações ao mesmo tempo, banco de dados é a prova disso, hoje o Dapper (biblioteca alternativa) é muito mais utilizado que o EF (biblioteca do framework).

  • @CristianoUnix
    @CristianoUnix 3 месяца назад

    É aquela velha história, quando menor acoplamento melhor, nesse caso seria o acoplamento do core re regras da aplicação com o framework.

  • @leonardoncintra
    @leonardoncintra 3 месяца назад

    Gostei da parte que ele usa a mesma coisa no Nextjs e no NestsJs
    Estou repetindo as interfaces, tudo com o mesmo nome e estrutura.
    As vezes separar realmente economiza tempo, e independencia.
    obrigado xará!

  • @Gygaweb
    @Gygaweb 3 месяца назад

    Grande mestre! Me deu aula no curso de java la na antônio sales!

  • @fabiopitte
    @fabiopitte 3 месяца назад +1

    ótima analogia com o banheiro 😂😂

    • @cod3r
      @cod3r  3 месяца назад

      😂😂😂

  • @rbateradedeus
    @rbateradedeus 3 месяца назад

    😅 Ótima analogia com o convidado entrão zoando o banheiro....
    Boa, Léo!

  • @CaetanoF.S
    @CaetanoF.S 3 месяца назад

    Boa análise! Você é um grande especialista na área de dev e tem uma boa didática.

  • @delbarros3535
    @delbarros3535 3 месяца назад

    👏 Bem explicado

  • @luizbarueri.contato
    @luizbarueri.contato 3 месяца назад

    😜😜👍