Frameworks front-end : de bonne intention à dette technique

Responsable Technique en agence, j’ai quotidiennement des projets de développement d’applications web nécessitant de fortes composantes front-end et je me demande donc naturellement et systématiquement si l’utilisation d’un framework front-end pourrait avoir une valeur ajoutée, ou pas.

Partant d’une bonne intention, l’utilisation de frameworks front-end génère peu à peu de nouveaux risques qu’il faut considérer pour sa décision technique.

FRONT-AWESOME

Les problèmes qui ont amené la création et la multiplication des frameworks front-end étaient des ambitions toujours plus importantes pour les interfaces, la volonté de retirer la responsabilité de certaines opérations au back-end pour des questions de performances et de praticité, et surtout la facilitation de la maintenance des projets. Un développeur Angular pourra rapidement monter sur un projet Angular. Théoriquement. Dès lors, des frameworks tels que Backbone, Angular, React ou encore VueJS ont vu le jour et ont été très largement adoptés par les communautés techniques front-end, en agence comme chez le client. Et globalement, cela a permis la création de projets structurés et cadrés, et de profiter de certaines avancées technologiques bien senties (MVC front-end, Shadow DOM, etc). Au total, ce sont des centaines de frameworks très différents qui ont vu le jour en quelques années à peine. L’intention initiale était louable pour faciliter la maintenance des projets sur la durée, mais c’était sans compter sur la communauté front-end et sa volonté manifeste (et tout aussi louable) de faire évoluer les solutions et d’en créer des nouvelles tous les jours. Littéralement.

LES PROBLÈMES

Il est néanmoins utile de nuancer le tableau et de faire quelques rappels :

  • La multiplication des frameworks front-end et des versions majeures de chacun de ces frameworks est en train de générer une dette technique quasiment sans précédent dans l’histoire de l’informatique. Certains projets développés il y a 2 ans à peine sont aujourd’hui orphelins car la majorité des développeurs s’est tournée vers de nouvelles solutions. Bloqués dans leur framework, il est complexe de les faire évoluer et des projets de refonte complète sont déjà souvent envisagés. Soit une durée de vie plus courte que la moyenne.
  • Certains développeurs front-end n’ont plus connaissance des fondamentaux techniques, du fonctionnement bas-niveau du navigateur et du moteur JavaScript. Il est de plus en plus difficile de trouver des développeurs qui savent réellement ce qu’il se passe dans leur navigateur ou derrière leur code, ce qui rend le déboggage plus complexe. Trouver ce type de profil a été un exercice pour moi en 2017, et force est de constater que la mission a été beaucoup plus complexe que prévu. J’ai vu de nombreux profils incapables de créer de simples éléments dans le DOM sans un framework et sans chercher sur Google !
  • Les frameworks JavaScript sont souvent utilisés à tort pour des projets qui n’en nécessitent pas, ce qui génère des problèmes de performance et une augmentation du poids des pages. Il est un peu étonnant de lire en 2017-18 des articles qui expliquent fièrement les découvertes de certains développeurs : il est possible de faire des choses propres et maintenables en JavaScript, nativement, et c’est même extrêmement performant. Surprise !

CONCLUSION

Pour les décisionnaires techniques, je leur dirai qu’il est primordial de garder en tête le risque de dette technique avant la décision technologique, pendant le développement, après la livraison du projet, lors de la phase de maintenance, et de manière générale durant toute la durée de vie du projet. L’utilisation d’un framework JavaScript est certes un avantage non négligeable pour cadrer un projet mais peut facilement générer une dette technique importante et surtout complètement inattendue. Quant aux développeurs, je leur conseillerai d’être toujours curieux et donc de tester de nouvelles solutions, y compris avec un objectif final de mise en production. Je l’ai encore fait dernièrement plusieurs fois moi-même avec le framework VueJS, ce qui a été au final une très bonne expérience et des projets réussis. Néanmoins, je leur dirai aussi qu’il faut parfois savoir faire preuve de sagesse technologique, et ce pour le bien de tous !