Construindo aplicações com Nest.js e Clean Architecture

Поделиться
HTML-код
  • Опубликовано: 13 сен 2024

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

  • @luczztem
    @luczztem 11 месяцев назад +10

    mano do céu na moral to impressionado com a qualidade dessa aula, boa demais nmrl mesmo

    • @argentinaluiz
      @argentinaluiz 11 месяцев назад +2

      Opa! Muito obrigado pelo feedback! Fico feliz que tenha gostado da aula!

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

    Ótimo conteúdo, eu já estava estudando arquitetura hexagonal e tinha um projeto feito em Nest, alguns ajustes e consegui deixar ele bem padronizado.

  • @DiegoRodrigues06
    @DiegoRodrigues06 10 месяцев назад +5

    Como criar um projeto com uma arquitetura baseada em desacoplamento utilizando um framework altamente opinativo? Nem as entidades desse projeto aí estão livres de dependência, o que por sí só já fere o clean Arquitecture não? se tirar o Nest desse projeto o que sobra no code base que rodaria em outro framework ou outra versão? É nisso que eu penso quando desenvolvo algo utilizando clean arq.

  • @flaviolucas8337
    @flaviolucas8337 2 дня назад

    Para quem como eu só precisava da parte de Clean Architecture, ela começa na minutagem: 01:12:00

  • @raphaelcomph-dev
    @raphaelcomph-dev 11 месяцев назад +5

    A aula foi muito boa, porém reparei 2 pequenas falhas nessa arquitetura em relação ao que prega o Clean Architecture. Nessa arquitetura criada, os usecases ficaram relativamente isolados da tecnologia (os "detalhes" que Uncle Bob comenta), contudo ainda ficaram com dependência do framework Nest p/ injeção; agora as entidades, que deveriam ser o coração do software e serem totalmente isoladas do detalhes, ficaram extremamente dependentes do TypeORM com as annotations.

    • @argentinaluiz
      @argentinaluiz 11 месяцев назад +3

      Olá Raphael, tudo bem?
      Obrigado pelo seu feedback, em um determinado momento da aula eu comentei sobre isto.
      Podemos usar uma abordagem purista do Clean Arch, fazendo os uses cases e outros coisas totalmente isoladas, mas podemos usar uma abordagem não purista, aplicando o que ele diz no livro sobre quebra parcial da arquitetura, em que ele diz que os arquitetura por alguma conveniência podemos quebrar determinadas regras.
      Numa aplicação que iríamos desenvolver inicialmente só com Nest, uma abordagem não purista pode ser interessante.
      Entendeu a ideia?

    • @raphaelcomph-dev
      @raphaelcomph-dev 11 месяцев назад +2

      @@argentinaluiz Sim, entendi. Obrigado pela resposta!

    • @diogoluizzzzzz
      @diogoluizzzzzz 7 месяцев назад +1

      Muito boa essa provocação, não somente a injeção de dependências e a questão do typeORM, até mesmo a controller, usando a própria forma de criar controller do nest já gera uma dependência tb, num conceito purista controller do nest (cria a api) e controller do clean são coisas diferentes e a controller num sentido purista tb deveria ser feita abstrata ao framework, agora o questionamento é: É necessário esse nível de purismo no nosso dia a dia de trabalho ? A longo prazo é saudável e não vai atrapalhar no time to market?

    • @pauloguillen9838
      @pauloguillen9838 7 месяцев назад

      7😮​@@raphaelcomph-dev

  • @meguinha8103
    @meguinha8103 10 месяцев назад

    as melhores aulas sempre aqui

  • @danielsangelo4344
    @danielsangelo4344 11 месяцев назад +2

    pica demais essa aula! Valeu, Luiz! Parabéns pela didática

    • @argentinaluiz
      @argentinaluiz 11 месяцев назад +1

      Opa Daniel, show de bola! Muito obrigado pelo seu feedback!

  • @rodolpho.leal.82
    @rodolpho.leal.82 10 месяцев назад

    Excelente conteúdo!! Obrigado por compartilhar este conhecimento. Ganhou um seguidor. Abraço!!

  • @jorgevalentzeferino
    @jorgevalentzeferino 7 месяцев назад

    @argentinaluiz que ferramenta você está usado para fazer o autocomplete? tanto em .ts como tabém na command line? value, conteudo top demais

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

    uma duvida, começei um projeto basico para entender melhor mas cabei tendo uma duvida, se eu tenho um authController como vou fazer o login, importo um use-case que está vindo do user ou eu crio use-case no auth e importo repository do user ?

  • @jhonatanteixeirarios710
    @jhonatanteixeirarios710 11 месяцев назад +2

    Alguém sabe dizer se é possível rodar o Nest com Bunjs e se existe ganho de performance?

    • @luizaugustosilvadossantos8175
      @luizaugustosilvadossantos8175 11 месяцев назад +1

      Tem sim amigo. Ainda não testei, mas o Bun já suporta

    • @DiegoRodrigues06
      @DiegoRodrigues06 10 месяцев назад +1

      Eu segui essa aula com Bun e deu pau no drive do slite. Instalando com bun install o nest não reconheceu e não fez a conexão. Mas eu instalei com NPM e continuei executando com bun e estava rodando tudo certinho

  • @gustavoribeiro3003
    @gustavoribeiro3003 8 месяцев назад

    A implementação das entidades não está muito dependente do typeorm, ferindo os princípios da arquitetura limpa?
    Digo isso pensando no que prega o DDD, que as entidades são o coração e devem ser totalmente independentes da camada de infra, de forma que fiquem protegidas. A entidade project.entity ta mais pra uma model do typeorm do que pra uma entidade com as suas regras de negócio.
    Outra duvida que tbm fiquei pensando foi que o project.service.ts tbm ta muito acoplado com o typeorm. Quando chamamos o método find() ou findOneOrFail() por exemplo, estamos indo direto na implementação do typeorm, e não em uma abstração intermediária.
    Foram algumas dúvidas que fiquei pensando, não sei se estou certo. Caso alguém saiba e queira esclarecer melhor, será muito bem vindo!

  • @buenodev
    @buenodev 11 месяцев назад +1

    fiquei tentando fazer junto pra praticar e simplesmente gastei muito tempo tentando configurar ambiente, teve um dado momento q deu erro de sqlite_constraint no project.name e eu não entendi o que tava errado... Não consegui me adaptar a essa dinâmica de aula.

    • @argentinaluiz
      @argentinaluiz 11 месяцев назад

      Opa! O erro significa que nenhum valor está sendo passado para o campo name de project. Este campo é definido como not null, então é obrigatório passar algum valor para ele.

    • @gabrielbudkesousa
      @gabrielbudkesousa 10 месяцев назад

      Tive o mesmo problema e contornei a situação realizando a chamada por um client como Insomnia ou Postman. Depois percebi que o script do arquivo api.http estava com um pequeno erro de sintaxe. Não sei se é o seu caso, mas sugiro verificar algo assim

  • @diretoaoponto9870
    @diretoaoponto9870 11 месяцев назад +1

    Grande Mestre Wesley, cara cria um projeto de whatsapp com integração PIX com retorno. Eu pagaria por um projeto assim... Venda de um produto, tipo vídeo, por exemplo, o camarada paga com pix e envia o vídeo automaticamente.