PHP, JVM, JS

Comment choisir son framework ?

  • 25 février 2019

Dans un précédent article de notre blog intitulé : Les frameworks sont-ils indispensables ? Nous avions énoncé les inconvénients et les avantages d’utiliser des frameworks et montré l’exemple d’un projet réalisé sans framework.

Pour compléter cet article nous avons interviewé plusieurs de nos consultants afin de connaître les raisons de choisir ou non un framework ainsi que les étapes et les réflexions qui leurs permettent de choisir le ou les frameworks les mieux adaptés à leur projet.

Pour répondre à nos questions nous avons sollicité : un développeur mobile iOS, un développeur PHP, deux développeurs JavaScript et un développeur Java.

« Une chose importante à prendre en compte est la puissance de la communauté derrière le framework. »

Badr - Développeur mobile iOS
Badr – Développeur mobile iOS

« Pour faire le choix de prendre ou non un framework pour développer mon projet, je me demande si celui-ci peut me faire gagner du temps et s’il va simplifier mon code. Ensuite le choix du framework se fait en fonction de sa popularité afin qu’un autre développeur puisse facilement reprendre le développement du projet. C’est pour ces raisons que j’utilise beaucoup les frameworks Alamofire et Realm.

Une autre chose importante à prendre en compte est la puissance de la communauté derrière le framework. Pour me faire une idée sur les frameworks je suis les blogs Raywenderlich.com et nshipster.com ainsi que la conférence Apple WWDC.

J’ai en mémoire un seul projet ou je n’ai pas utilisé de framework. Je voulais apporter une feature et le framework allait simplifier mon code mais alourdir mon application et je ne voulais pas stocker autant de donné dans celle-ci ! »

« Un avantage de travailler avec Symfony est d’être serein au niveau du système de sécurité de notre application web ! »

Haspinder - Lead Développeur PHP
Haspinder – Lead Développeur PHP

« Pour tous mes projets j’ai le réflexe d’utiliser un framework ! En effet, travailler avec le framework Symfony permet de développer plus facilement et rapidement. La version 4 de Symfony est un micro framework qui permet de générer une simple API mais donne également la possibilité de créer un site Web d’une grande envergure. Un autre avantage de travailler avec Symfony est d’être serein au niveau du système de sécurité de notre application web car beaucoup de modules de sécurité sont fournis avec.

J’ai déjà travaillé sur un projet sans utiliser de framework mais je l’ai regretté car il est beaucoup plus facile de créer les routes avec un framework PHP. Grâce aux frameworks PHP les routes peuvent facilement être créées dans le format que l’on souhaite.

Et si je souhaite travailler sur le design d’un site web mon premier réflexe sera d’utiliser Bootstrap. »

« Il y a une tendance à uniformiser tous les sites. »

Pierre-Antoine - Developpeur JavaScript
Pierre-Antoine – Developpeur JavaScript

« Dans un projet front-end pour moi le choix d’un framework se fait en fonction de la communauté qu’il y a derrière celui-ci. Un framework bien entretenu est un prérequis, s’il y a une grande communauté et une entreprise importante en charge de le faire évoluer, c’est très rassurant !

Choisir d’utiliser un framework permet aussi de gagner beaucoup de temps dans le développement de son projet. Dans mes projets perso, il arrive parfois de ne pas utiliser de framework afin d’avoir une interface simple rapidement. J’utilise dans ce cas des moteurs de template comme Pug afin de tester mes requêtes.

Si je devais mentionner des aspects négatifs des frameworks JS : c’est qu’il y a une tendance à uniformiser tous les sites. On rassure le visiteur mais il y a une perte d’originalité d’un site à un autre car tous les développeurs ont tendance à utiliser les mêmes bibliothèques. Un autre point négatif est qu’on utilise rarement tout ce qu’on importe du framework. Il y a donc beaucoup de dépendances (modules) pour parfois des petits projets ce qui alourdit notre application ou notre site inutilement »

« L’avantage d’utiliser un framework est d’avoir un outil clé en main. »

Mehdi - Développeur JavaScript
Mehdi – Développeur JavaScript

« Dans un premier temps, avant chaque projet, il est important d’identifier les compétences de notre équipe. Il ne serait sans doute pas judicieux de choisir un langage ou un framework que personne n’a jamais utilisé si celui-ci demande une montée en compétences importante : nous n’allons pas choisir une stack full JS si nous n’avons comme ressource uniquement
des développeurs Drupal par exemple.

Dans un second temps, il va falloir analyser les besoins fonctionnels du projet et trouver ce qui pourrait correspondre le mieux pour répondre au cahier des charges, mais aussi pour respecter les deadlines demandées. Ensuite, l’analyse de la communauté active autour d’un framework est aussi importante.

Il sera alors possible de trouver une réponse aux futurs problèmes rencontrés mais également de voir que ce framework n’est pas abandonné et qu’il possède des mainteneurs pour des évolutions ou problèmes de sécurité.

L’avantage d’utiliser un framework est d’avoir un outil clé en main pour nous développeurs. Il va servir de fondation au projet et peut apporter certains patrons de conception.

Celui-ci va nous fournir différents composants et outils afin de nous concentrer principalement sur la logique métier du projet.

Un framework possède une communauté et des mainteneurs qui vont apporter des mises à jours de sécurité potentiel au projet, choses qu’on aura forcément plus de mal à identifier sur un projet sans framework.

De plus en utilisant un framework, on va créer une certaine homogénéisation : il sera plus simple d’intégrer de nouvelles ressources sur le projet, plus simple d’alterner entre chaque projet en interne.

J’ai déjà développé plusieurs projets sans utiliser de frameworks. Soit je n’avais besoin que d’une infime partie du framework et je ne voulais pas me retrouver avec son ensemble de fonctionnalités, soit je n’avais pas la nécessité d’utiliser un framework au vu des tâches à réaliser. « 

« Utiliser un framework permet d’aller plus vite dans le développement. »

Himanshu - Développeur Java et Scala
Himanshu – Développeur Java et Scala

« Dans la majorité de mes projets j’utilise un ou plusieurs frameworks.

Avant de choisir un framework il est important de bien identifier sur quel type de projet on va travailler : Web, Big data, Application mobile, Micro services…

Ensuite, il faut identifier le langage de programmation et il dépend beaucoup de l’équipe qui sera en charge de développer le projet.

Une fois le langage déterminé c’est le moment de choisir son framework. Pour faire son choix je conseille de faire attention à la réputation open source de celui-ci. Et cela passe par le fait de savoir qui ou quelle entreprise est chargé de maintenir et de faire évoluer le framework. Si il y a une communauté importante et s’il y a un budget dédié au développement du framework ce sont des facteurs qui doivent vous rassurer car vous ne serez pas piégé pour l’évolution du framework.

D’une manière générale utiliser un framework permet d’aller plus vite dans le développement ce qui est essentiel pour respecter le time to market ! »