Framework, pour ou contre?

Framework, pour ou contre?

Beaucoup de développeur utilisent les Frameworks pendant la phase de réalisation de leur projet dans le but de faciliter et d’accélérer la production. En effet, un framework (Bootstrap, NodeJS, Angular….) est un cadre de travail, avec un support à disposition, qui vous fournit les briques (composants, librairies..) et la méthodologie essentielle pour fabriquer votre projet.

Framworks
Framworks

Les risques

Avant de vous lancer tête-baissée dans le choix d’un Framework, il est important de prendre conscience de certains inconvénients :

  • le temps d’apprentissage est souvent long. Il faut même parfois  suivre une formation (coûteuse) pour atteindre un bon niveau de pratique professionnelle. Certains développeurs, comme avec le Framework Symphony,  en font même un métier à part entière.
  • il faut considérer le problème des versions. En effet les frameworks évoluent régulièrement, ce qui entraînent donc d’utiliser autrement les composants. Il arrivent souvent qu’une, d’une version à l’autre, les différences génèrent un temps d’adaptation long et déroutant (comme si on avait à faire à un autre framework)…
  • Il y a une dépendance créée sur le projet qui rend le ‘refacto’ lourd, avec le risque de réécrire intégralement le projet, si la nouvelle version du framework ne convient plus. Une bonne pratique consiste à ne pas rendre la logique métier dépendante du framework.
  • ils risque d’enduire une perte de connaissances fondamentales. Le développeur finit par utiliser aveuglement les modules, sans vraiment comprendre son fonctionnement dans le langage natif (Java, C#, PHP, SQl..). Il gagne peut-être en autonomie, mais il perd cette liberté de créer un module inexistant et spécifique au besoin du client.

Réflexion après conception

C’est après la phase de conception d’un projet (spécification des besoins, diagramme de classes, modélisation…) que vous allez réfléchir à l’environnement technique à utiliser pour la réalisation. Vous devez donc vous assurez que le ou les frameworks pourront répondre aux exigences de développement. Il ne faut pas confondre le choix de l’architecture (MVC..) et le lien avec le framework.

Il faut ainsi connaitre à l’avance les possibilités de chaque framework par rapport à votre projet. Il ne serait pas judicieux de travailler dans un environnement qui ne répond pas aux besoins fonctionnels. En outre, il n’est pas nécessaire de travailler avec un framework contenant  des centaines de librairies si vous n’avez besoin que de deux ou trois fonctionnalités.. Vous allez alourdir votre environnement et perdre du temps à faire le tri parmi tous ces composants.