
O NestJS é um framework Node.js com o objetivo de desenvolver aplicações back-end, do lado servidor, destacado pela sua capacidade de desenvolver sistemas utilizando Javascript ou Typescript com um alto nível de desempenho.
Criado em 2017 por Kamil Mysliwiec, um jovem programador polonês, o NestJS utiliza por padrão a arquitetura MVC voltada para back-end, permitindo a criação de aplicações web com páginas, banco de dados, API e JSON.
Para desenvolver com Node.js o Nest utiliza Typescript como linguagem padrão, mas o seu diferencial em relação a outros frameworks é justamente a base nos fundamentos de design e arquitetura do Angular.
Isso significa que ele foi projetado sob um conceito de módulos, nos quais nós registramos tudo o que fazemos nele. Sendo assim, tudo o que nós pegamos de um módulo também nos permite criar aplicações complexas e de grande porte.
Quais são os benefícios do NestJS?
-
CoC (Convention Over Configuration – Convenção Sobre Configuração)
Seguindo o padrão CoC ele te fornece uma série de convenções e paradigmas que você, como desenvolvedor, não precisa decidir; logo a sua preocupação é mais voltada a como você vai desenvolver a sua aplicação em si. Em outras palavras, ele te dá uma estrutura de pastas como uma forma de separar as lógicas do seu sistema, o que é muito vantajoso.
-
Typescript
Utilizando Typescript ele já agrega essa linguagem Microsoft por padrão, além de utilizar Javascript nativamente. Dessa forma nós trabalhamos com tipagem e também podemos verificar os erros que acontecem.
-
Arquitetura Escalável
Com arquitetura escalável, sustentada pelos conceitos modulares do Angular, é possível organizar melhor um projeto complexo e utilizar somente o necessário para mantê-lo.
-
Integração Diversificada
De fácil integração a diversos tipos de bancos de dados, como MySQL, SQL Server, Oracle, etc. O NestJS não conta com nenhum pacote que trabalha especificamente com bancos de dados; ele sempre utiliza os melhores padrões disponíveis, com integrações para MikroORM, TypeORM, Prisma, entre outros. No geral, é muito fácil trabalhar com muitos dados dessa forma.
-
Microsserviços
O NestJS é muito recomendado pelo seu alto suporte a microsserviços. E se você precisa fazer as suas comunicações utilizando mensageria, seja pelo Kafka ou pelo RabbitMQ, o Nest também suporta esses padrões.
-
Suporta a criação de API REST e GraphQL
Além de permitir a criação de API REST, que também está no contexto dos microsserviços, é muito fácil criar uma API com o Nest.
E se você precisa criar uma API com o GraphQL do Facebook, por exemplo, ele já traz um recurso para que você não precise trabalhar com schemas; você trabalha diretamente com os decorators e Typescripts.
O que NestJS não é?
É importante frisar, principalmente para quem está começando por Node.js, que não se deve confundir o NestJS como um concorrente da tríade de libs front-end: Angular, React e Vue.js. Entenda que a tríade está do lado browser e o Nest está do lado servidor.
Logo é perfeitamente plausível ter uma aplicação back-end desenvolvida com Nest, e o lado front-end desenvolvido com os outros padrões de forma conjunta. O Nest, inclusive, já tem uma integração com aplicações Angular nativamente.
Então você cria um projeto contando com várias possibilidades e facilidades, mas se você quiser usar React ou Vue.js para o seu front-end não há problema algum; ele é inteiramente compatível.
-
Não se vicie em frameworks!
Se você está começando com Javascript ou Typescript, é importante pensar que você não deve ser o tipo de programador viciado em frameworks. Eles são, de fato, ferramentas importantes; mas são passageiros.
O seu foco precisa estar na linguagem conforme você aprende a solucionar problemas de desenvolvimento, portanto continue estudando. E se no futuro o seu framework se tornar obsoleto, você consegue aprender o próximo sem colocar a sua carreira em risco.
Documentação
A parte de documentação do NestJS é simples e bem exemplificada. E mesmo que você não tenha experiência com inglês, na parte de busca você encontra tudo muito bem dividido.
Comunidade
A comunidade do NestJS é bem ativa e você pode entrar no Discord oficial para tirar as suas dúvidas. Mesmo que seja tudo em inglês, lá você acha grande parte dos padrões. E se você precisa de um insight sobre qualquer coisa nesse contexto, a comunidade está lá para esse tipo de coisa. Muitas respostas já estão lá, inclusive, caso você precise procurar.
Node.js
— O NestJS pede o Node.js 16 ou versão superior para funcionar.
É possível aplicar os conceitos de Docker para criar o ambiente dessa aplicação, ao invés de uma máquina. E caso você queira trabalhar dessa forma ainda é recomendável a versão 16 do runtime, já que sem isso alguns detalhes não serão totalmente compatíveis.
A instalação do Node é bem simples, mas no caso do Windows nós utilizamos o WSL com uma instalação semelhante a do Linux.
Para uma análise mais ampla do assunto, assista ao vídeo completo do Luiz no início desse post!
Se você curtiu esse post e quer explorar as capacidades desse framework poderoso, solicite contato clicando aqui e nós te ajudamos.
Veja também: Entendendo o AWS Kinesis Data Plataform.
Confira diversos conteúdos no nosso canal do youtube.