Quand je vois que Theo (https://youtu.be/zsa9Ey9INEg) a mis 2 semaines pour faire son site uploadthing avec la dernière version de NextJS, je me dis que moi j'aurais probablement mis plus longtemps à essayer de decoupler le plus de choses possible de NextJS.
Je ne sais pas à quel point son équipe a galérer ou non avec des bugs ou autre.
Les seuls retours qu'il fait c'est que l'équipe s'est sentie beaucoup plus productive pour shipper rapidement des features (ce qui reste l'essentiel dans le software craftsmanship), mais que les 5 à 10 secondes du rafraîchissement du dev server ont fait perdre beaucoup de temps.
La question se pose donc réellement :
Est-ce qu'on choisit délibérément de se lier pieds et poings au framework, dans la promesse d'avoir une productivité accrue au détriment de la potentielle souplesse d'évolution ?
Ou est-ce qu'on préfère tenter d'utiliser NextJS pour tous ses bienfaits tout en essayant d'aller à l'encontre de la façon dont il a été fait afin de rendre le code plus hexagonal-ready ou clean architecture ready ?
Si l'industrie se dirige de plus en plus vers l'utilisation de frameworks de ce genre qui sacrifient généralement la testabilité au profit d'une productivité soi-disant renforcée à court terme, quand est-il du moyen / long terme ?
Le problème c'est qu'une codebase NextJS peut vite devenir velue et probablement perdre en productivité avec le temps si l'on ne fait pas attention.
Faire l'effort d'avoir une architecture testable demande plus d'énergie en amont, mais paye de plus gros dividendes ensuite.
Se former aux principes du craft c'est donc faire un pari long terme.
Et clairement ça demande du courage, car ça veut dire nager à contre-courant pendant de longs mois voire années.
Qu'en pensez-vous ?
Happy Coding !
—————————————
Le cursus frontend Craft Academy est toujours accessible au prix de lancement de 250€ au lieu de 350€, payable en 1,2,3 ou 5 fois :) C'est ici : https://craftacademy.fr
Ayant eu par le passé des problèmes de couplage, je confirme que le bénéfice de la clean architecture est sur le temps long.
Dans ma boite actuelle, Next a été choisi à mon grand désarroi. Le concept de module ne fait gagner que quelques lignes de configuration, par contre on a vite fait d'en écrire de plus nombreuses lors des tests. Du coup, je ne vois même pas où serait l'amélioration de productivité.
Même la connexion à la DB à vite fait de se retrouver contaminer avec des @injectable. Que se passera-t-il quand Nest sera déprécié/abandonné ? Sans même aller jusque là, un changement de politique interne de nos boites est vite arrivé, avec son lot de conséquences sur les techno supportées officiellement par son entreprise.