Découverte AdonisJS

Kinoba
5 min readJan 20, 2023

--

Un framework web complet pour Node.js

AdonisJS logo

📣 Disclaimer ! Cet article est un tour d’horizon de ce qu’est AdonisJS, selon moi et pourquoi j’aime cet outil. Je ne prétends pas détenir la vérité absolue, mon point de vue est donc subjectif ! Ceci étant dit, bonne lecture. 🙂

La quête du Graal !

Toute quête commence par un but précis.

Dans mon cas l’objectif était clair : Trouver un framework aussi génial que Ruby on Rails ❤️… en NodeJS.

Quand on a gouté aux joies du développement web avec Ruby on Rails, difficile de faire marche arrière !

Les premiers écueils

Pour ma part, j’ai commencé à développer sur NodeJs avec ExpressJs et la transition a été brutale. Plus d’ORM, plus de générateurs, plus de système de migrations, plus de console interactive, bref plus rien si ce n’est un simple serveur HTTP.

Évidemment, il est possible d’ajouter toutes ces fonctionnalités à Express par le biais de divers packages, mais cela implique plusieurs inconvénients :

  • un temps considérable à benchmarker les packages
  • une expérience de développement très hétérogène au sein d’un projet
  • des documentations de qualités très différentes entre les packages
  • une intégration parfois compliquée du fait de la multi-compatibilité de certains packages

Mon voyage dans les méandres de NPM

Depuis, je n’ai cessé de chercher un framework similaire à Rails mais rien ne m’a jamais paru concluant.

J’ai pourtant regardé ce qui se passait du côté de SailsJS, qui est une copie de Rails sous NodeJS, mais à l’époque le projet battait de l’aile et n’a pas su s’imposer.

J’ai très vite écarté NestJS, pourtant très populaire, mais tellement différent de ce que je recherchais avec son approche modulaire.

En revanche, les habitués d’Angular côté front-end devraient y trouver leur compte !

Puis, enfin je l’ai trouvé !

Un air de déjà vu !

Alors, si vous ne le connaissiez pas déjà, laissez moi vous présenter Adonis !

Adonis est un framework web complet basé sur NodeJs.

Tout comme Rails il embarque :

  • un ORM
  • un outil de migrations
  • une cli
  • un moteur de templates

Mais aussi :

  • un système d’authentification
  • un système d’upload de fichiers
  • un framework de test

… et le tout avec une expérience de développement unifiée et élégante.

Grâce à Adonis vous vous concentrez sur la construction de votre projet et non sur la configuration et l’architecture de votre application.

La courbe d’apprentissage est ultra rapide (surtout si l’on a déjà une expérience avec un autre framework back-end).

On prend vite ses marques, tout semble naturel.

L’un des avantages majeurs d’Adonis, en plus de ses fonctionnalités, c’est la documentation : à la fois intuitive et chaleureuse, on trouve rapidement ce que l’on cherche. Tout est clairement expliqué grâce à des cas pratiques.

Les habitués de Laravel se sentiront comme à la maison !

L’UI de la documentation est particulièrement soignée, ce qui la rend agréable à parcourir.

À quoi ressemble Adonis ?

Voici quelques exemples de code pour avoir un aperçu des principales fonctionnalités du framework :

  • Le système de routing
Faire une action directement sur une route en particulier
Toutes les routes d’un CRUD gérées par un controller

Ici les routes /sample et /other utiliseront les méthodes de contrôleur spécifique sampleAction et otherAction . Elles seront protégées par le middleware d'authentification par token.

  • Le système de migration
Ici on peut voir la création d’une migration, avec les actions à effectuer lorsque l’on joue la migration puis lorsqu’on l’annule. On y voit les différents types de colonnes ainsi que l’usage de méthodes chainables.
  • Les models

Adonis nous abstrait les méthodes d’accès aux données grâce à son ORM lucid et nous épargne également l’écriture des getters et setters grâce à l’héritage de classes et aux décorateurs @column() : une simple déclaration de propriété avec son type suffit.

  • Les controllers

Ici nous avons un controller avec toutes les méthodes conventionnelles d’Adonis pour mettre en place un système de CRUD simple.

Si vous avez déjà utilisé un framework comme Laravel, Rails ou tout autre framework basé sur le principe de convention over configuration, alors ce code vous sera probablement assez familier.

Pour avoir un autre aperçu de ce à quoi peut ressembler une application Adonis, vous pouvez vous rendre ici : https://adonisjs.com/adonisjs-at-a-glance.

Adonis en entreprise ?

Adonis a-t-il vraiment les moyens de devenir un framework de premier plan, comme le sont Rails et Laravel par exemple ?

Sur le papier, il a tout pour plaire, aimé des développeurs, une syntaxe élégante, une popularité grandissante, des fonctionnalités intéressantes et simples d’utilisation.

Mais attention, car contrairement à ses deux illustres ainés, il évolue dans un écosystème bien différent qui va plus vite et qui est soumis à une concurrence bien plus vaste et diverse.

Conclusion

Je ne peux que vous encourager à essayer ce superbe outil et à répandre la bonne parole autour de vous.

Si vos besoins techniques et Adonis se recoupent pourquoi ne pas essayer ?

Pour ma part, je continuerai à m’en servir pour mes side-projects et si l’occasion de l’utiliser se présente dans le cadre professionnel, je la saisirai sans hésiter !

Bien d’autres choses sont possibles avec Adonis et je me ferais un plaisir de vous en parler dans un prochain billet.

Mickaël Thely • Développeur web fullstack @Kinoba

--

--

Kinoba

Teepee made web apps — L’agence web qui développe ta plateforme sur mesure