Visão geral dos novos recursos do NestJS 6

Nós da TestMace estamos usando ativamente o NestJS para desenvolver nossos serviços. Hoje, sua atenção é a tradução de um artigo dedicado a uma revisão dos recursos da nova versão principal do NestJS.



Hoje, tenho o prazer de apresentar o lançamento oficial do Nest 6, uma estrutura progressiva do Node.js. para criar aplicativos eficientes de servidor corporativo.


Para a nossa comunidade, o último ano não passou sem deixar rasto: a popularidade cresceu quase 300%, o que é 4 vezes mais do que qualquer uma das bibliotecas HTTP existentes. Eles conversaram sobre o Nest em um grande número de conferências em todo o mundo e muitos artigos e vídeos foram criados. 2018 foi incrível e 2019 será ainda melhor!


Novidades


O novo lançamento está preparando muitos recursos interessantes! Infelizmente, não teremos tempo para cobrir todos eles, mas definitivamente focaremos no mais quente deles!


Escopos de injeção


Nas versões anteriores do Nest, cada provedor era compartilhado por várias solicitações. O uso de singletones reduz o consumo de memória e melhora o desempenho do aplicativo.


No entanto, em alguns casos, pode ser necessário um controle adicional sobre o ciclo de vida de cada provedor. Por exemplo, ao implementar um cache separado para cada consulta em um aplicativo GraphQL ao criar sistemas multiusuários. Para resolver esses problemas, o contêiner de IoC agora tem outro nível de detalhe, permitindo criar novos escopos de injeção - o Escopo Transitório e o Escopo de Solicitação.



→ Você pode ler mais sobre eles aqui.

Plataformas


O Nest é uma estrutura completa e independente de plataforma. Graças a isso, os desenvolvedores podem criar blocos lógicos que podem ser reutilizados em vários tipos de aplicativos. Com o Nest, você pode criar de maneira fácil e fácil um aplicativo Web, um utilitário de console, uma fila de trabalhos e geralmente qualquer coisa! Colocamos toda a funcionalidade relacionada à plataforma em pacotes separados, como @nestjs/platform-express , e agora você pode escrever ainda menos código. Basta instalar tudo o que você precisa para sua aplicação!

Eventos


Anteriormente, a operação de cada canal de comunicação de microsserviço era construída com base em um paradigma de solicitação / resposta. Esse tipo de mecanismo de interação era perfeito para mensagens entre vários serviços externos. Vendo a confirmação, você pode ter certeza de que o serviço realmente recebeu a mensagem.


No entanto, para alguns sistemas, não é necessário criar canais bidirecionais, pois isso gera sobrecarga desnecessária quando você só precisa publicar um evento (sem pedir resposta). Por isso, introduzimos as mensagens baseadas em eventos . Graças a esse paradigma, basta notificar vários serviços com uma mensagem se, por exemplo, uma determinada situação surgir em algum lugar do sistema.



Descobriu-se também que esta solução no futuro proporcionará uma oportunidade para integrar plataformas de mensagens mais complexas. Acompanhe as novidades!


GraphQL ♡ TypeScript


Um dos problemas mais comuns do GraphQL é a redundância de tipo. Resolvendo esse problema em uma versão anterior do Nest, adicionamos um compilador que transforma definições escritas em SDL em interfaces TypeScript (ou classes).

O Nest versão 6.0.0 possui um pacote type-graphql que permite gerar arquivos GraphQL apenas com decoradores TypeScript! Agora, existem duas maneiras de escolher, e você pode decidir por si mesmo qual é mais adequado para necessidades específicas. Ambas as abordagens são fornecidas no @nestjs/graphql .

→ Mais sobre isso aqui

CLI


O pacote subjacente do Nest Angular DevKit foi atualizado, o que significa que a interface da linha de comandos agora exibe dicas . Além disso, adicionamos suporte ao nest g lib , o que ajudará a simplificar o desenvolvimento ao usar um único repositório.


A documentação


A documentação oficial do Nest foi redesenhada e agora está totalmente escrita em Markdown . Em nossa opinião, será muito mais fácil trabalhar com a documentação e, com o tempo, poderemos torná-la ainda melhor.


Parceiros e comunidade


Boas notícias: o Angular Console (UI para Angular CLI) agora suporta Nest!




O Nest se torna a principal solução para a criação de aplicativos Node estruturados e escalonáveis ​​no repositório Angular.


Além disso, lançamos recentemente o canal oficial do Discord . Inscreva-se no canal e participe da discussão sobre o Nest e outros tópicos interessantes!


Migrando do Nest 5


Siga as instruções para migrar projetos existentes. Você deve se livrar de qualquer aviso sobre a indesejabilidade de usar qualquer parte do programa que possa aparecer no console.


Suporte


O Nest é um projeto licenciado MIT de código aberto. Seu desenvolvimento atual foi possível graças ao apoio da comunidade, nosso principal patrocinador - Valor Software e outras empresas. Recentemente, mais dois patrocinadores se juntaram a esta lista - Blueanchor e NovoLogic . Obrigada


Tivemos que percorrer um longo caminho, trabalhando até o fim de semana e sem dormir por dias, para que nossa estrutura nascesse. Eu acredito que o bem salvará o mundo! ️


Se você gostaria de contribuir com o nosso projeto, siga o link .


Planos futuros


Ainda há alguns pontos no ecossistema que eu gostaria de melhorar.




Eu já tenho várias idéias planejadas para implementação nos próximos meses.

  • Gostaríamos de reescrever o módulo Swagger para usar o TypeScript AST. Isso adicionará muitos novos recursos úteis. Leia mais sobre isso aqui .
  • Exemplos de autenticação do mundo real mais complexos para vários fornecedores.
  • Implante aplicativos sem servidor e mais DevOps!
  • O curso de vídeo oficial!
  • Artigos educacionais.

Agradecimentos


Obrigado aos patrocinadores, à comunidade e a todos os envolvidos! Criamos nosso produto para você e estamos apenas no início de uma longa jornada.

Source: https://habr.com/ru/post/pt447554/


All Articles