Alors que JavaScript s’est imposé comme le langage roi indiscutable du frontend, sa popularité a également grimpé en flèche pour le back-end ces dernières années. On doit cela au développement de NodeJS. Les développeurs peuvent ainsi désormais écrire leur application en un seul et même langage, que ce soit pour le côté client ou le côté serveur. Ce qui a pour conséquence d’accélérer leur production, pour une mise sur le marché plus rapide.
Cette volonté de cycles de développement toujours plus courts a poussé la communauté des développeurs à concevoir et adopter de nombreux frameworks très utiles pour accélérer le développement du frontend tels que React, Angular ou Vue. Parmi la myriade de modules, plugins et outils disponibles pour NodeJS, un framework est en train de s’imposer comme un incontournable pour créer des applications solides côté serveur : Nest.js.
🧑🎓 Vous souhaitez apprendre à utiliser NodeJS 📖 ?
Practical Node vous enseigne les bonnes pratiques NodeJS pour être opérationnel dès le premier jour !
Dans cet article, vous saurez tout sur le framework Nest.js pour Node JS : ses avantages tels que sa compatibilité avec TypeScript ou son aspect modulable, mais également ses inconvénients.
Nest.js : le framework Node pour créer des applications scalables et optimisées
NestJS est un framework permettant de créer des applications Node.js hautement scalables, testables et facilement maintenables. La principale problématique résolue par Nest est celle de l’architecture. Il est en effet facile de se laisser tenter par la possibilité d’importer de nombreux modules externes pour accélérer toujours plus le développement d’une application Node. Il sera cependant difficile de garder une structure optimale à mesure que le code de l’application va grandir. C’est pourquoi Nest JS propose une architecture MVC prête à l’emploi, profondément inspirée de Angular. Ce framework Nodejs supporte totalement TypeScript et son cœur est basé sur Express mais peut être remplacé par Fastify.
Nest est le framework Node.js le plus populaire de 2019 en termes d’étoiles GitHub. Il a également détrôné en 2020 le très populaire Hapi en nombre de téléchargements sur npm:
Développé par Microsoft et co-créé par Anders Hejlsberg (le principal inventeur du C#), TypeScript est un sur-ensemble du JavaScript rendu public en octobre 2012. Ce langage à part entière est transcompilé en JavaScript (c’est-à-dire traduit d’un langage vers un autre langage) pour être interprétable par les navigateurs web et les moteurs JavaScript tels que Node. Multi-paradigme, TypeScript permet autant la programmation fonctionnelle que la programmation orientée objet. Il fournit un environnement de développement sécurisé et toutes les fonctionnalités avancées du JavaScript et plus : typage statique optionnel, création de classes et interfaces, import de modules…
NestJS est un framework TypeScript avant tout mais il laisse également la possibilité d’utiliser du pur JavaScript.
Les décorateurs (ou decorators en anglais) sont des éléments de syntaxe fortement utilisés dans Angular et présentes dans TypeScript. Pour JavaScript, elles sont une fonctionnalité proposée mais pas encore intégrée.
Les décorateurs permettent de faciliter l’accès à certaines fonctions. Par exemple, dans l’exemple suivant, les @Get ou @Post dans un contrôleur permettent de définir la route ou la méthode :
import { Controller, Get, Post, Body } from '@nestjs/common';import { StudentsService } from './students.service'import { Student } from './students.interface'; @Controller('students')export class StudentsController { constructor (private studentService: StudentsService) {} @Get() findAll(): Record<string, any> { return this.studentService.findAll() } @Post() create(@Body() student: Student) { this.studentService.create(student) return this.studentService.findAll() }}
Grâce à l’utilisation de TypeScript, NestJS encourage le typage et la vérification des saisies depuis l’entrée des requêtes jusqu’à la réponse du serveur.
La rapidité de développement des applications Node s’explique en partie par la possibilité d’importer du code tiers, proposé et testé par la communauté. Les frameworks et autres outils sont donc flexibles et modulables par nature pour permettre aux développeurs de choisir les modules qui composent leur application et imposer un minimum de contraintes.
NestJS ne déroge pas à la règle et encourage la modularité :
Si Nest JS peut se permettre de faciliter la modularité à ce point, c’est parce qu’elle suggère une architecture standard qui limite les risques de produire du “code spaghetti”.
NestJS dispose d’une interface en ligne de commande (CLI) complète, similaire à ce que l’on peut retrouver sur Symfony, Laravel (PHP) ou Ruby on Rails. Au travers de celle-ci, Nest JS suggère une architecture MVC (Modèle-Vue-Contrôleur) organisée autour de vos modules.
Cette architecture et l’emplacement de chaque fichier sont très fortement inspirés d’Angular, ce qui facilite le développement back-end pour les développeurs habitués à ce framework front-end. L’architecture suggérée par NestJS est prévue pour garder une structure optimale à mesure que l’application évolue et que la liste des modules qu’elle utilise s’allonge : un vrai avantage de scalabilité.
Qui dit application qui grandit dit des procédures de test qui suivent le pas. Nest JS propose une configuration complète de tests avec la librairie Jest. Cette configuration est, elle aussi, prête à l’emploi mais permet également aux développeurs d’utiliser d’autres outils de tests si besoin.
Vous l’avez compris, NestJS ne manque pas d’arguments pour séduire les développeurs NodeJS et/ou les développeurs Angular souhaitant se lancer en back-end. Le framework présente néanmoins un certain nombre d’inconvénients.
Créé en 2017, Nest JS est un framework récent qui a, comme toutes les solutions nouvelles, un certain nombre d’inconvénients et de limites :
C’est indéniable, NestJS est un framework très complet, à l’image de ce que l’on peut appeler son équivalent front-end, Angular. Si sa nette orientation pour TypeScript peut plaire à de nombreux développeurs, son architecture suggérée et l’utilisation massive des décorateurs peuvent décourager. Une certaine courbe d’apprentissage sera en effet à appréhender pour les développeurs Node n’ayant pas d’expérience sur Angular.
NestJS reste un bon choix pour démarrer une application Node.js. Sa popularité grandissante vous garantit un grand nombre de ressources en ligne pour monter en compétences sur ce framework.
Elles sont passées où les femmes dans la tech ? Entre le manque de représentation…
Dans cette vidéo, on interview Nicolas Grekas, contributeur clé de Symfony, pour discuter de sa…
Comment trouver son job dans la tech ? Marie a la réponse ! Grâce à…
Adobe, l'empire créatif, et pas des moindres ! Belle ascension de la part de ces…
Est-ce plus simple de créer des morceaux avec les outils de Musique Assistée par Ordinateur…