C'est quoi un framework?
Un framework permet de réduire les temps de développement des applications en répondant de façon efficace aux problèmes les plus courants rencontrés par les développeurs. Il inclut généralement de
nombreuses fonctionnalités prêtes à l’emploi dont les implémentations sont bien rodées et utilisent des modèles de conceptions standard et bien implémentés. Le temps ainsi gagné sur les questions génériques
pourra être mis à profit pour les parties spécifiques de l’application.
De plus, l’utilisation d’un même framework dans différents projets contribue à l’industrialisation du
processus de développement : la structure de l’application et les méthodes de programmation sont standardisées, les compétences des développeurs sont réutilisables dans chaque projet.
Un framework est le fruit du travail de dizaines de personnes qui s’appliquent à corriger les problèmes ou les failles de sécurité découverts par l’ensemble des utilisateurs et à proposer de nouvelles fonctionnalités. C’est pourquoi les programmes d’un framework sont en général mieux conçus et mieux codés, mais aussi mieux débugués et donc plus robustes, que ce que pourrait produire un unique programmeur. Outre le gain de temps, on obtient un important gain en termes de qualité.
L’utilisation d’un framework est très fortement recommandée, afin de ne pas avoir à réinventer la roue et d’éviter les erreurs de conception classiques qui créent des problèmes de sécurité ou tout simplement des bugs.
Performances des logiciel en rapport avec le framework:
Beaucoup de développeur pensent que l’utilisation d’un framework ne peut que dégrader les performances d’une application. Ce n’est pas tout à fait exact.
Il est vrai qu’il existe en informatique un compromis très ancien et très habituel entre la qualité de l’architecture logicielle et des outils de développement d’une part, et les performances d’autre part. Avec le
temps, ce compromis finit toujours par être tranché en faveur des outils de développement, car la CPU coûte de moins en moins cher, tandis que l’heure de programmeur coûte de plus en plus cher. C’est cette logique
qui veut que nous ne développions plus en assembleur, bien que cela puisse être plus performant.
Par cette analyse, on pourrait dire : oui, un développement basé sur un framework sera peut-être moins performant, mais ça n’est pas grave, car les gains attendus en termes de productivité, de qualité, de robustesse et de maintenabilité sont tellement plus importants au final.
Mais il faut souligner aussi qu’un framework peut, bien souvent, faire gagner aussi sur le plan des performances. Cela simplement parce qu’il met à disposition du développeur des structures de code plus
complexes et plus optimisées que ce qu’il aurait produit seul. L’exemple le plus parlant est bien sûr celui d’un bon gestionnaire de cache, que ce soit sur des objets obtenus d’une base de données, ou bien sur des
fragments de page Html : là où un programmeur sans framework aurait eu du mal à réaliser son propre cache de manière complète et fiable, il dispose de classes prêtes à l’emploi qui amélioreront de manière
extraordinaire les performances de son application.
Avec PHP, le principal facteur de dégradation des performances vient de ce qu’il faut, à chaque requête, déclarer les différents modules, charger la configuration ou convertir en PHP des templates qui utilisent une
syntaxe spécifique.
Les frameworks utilisent plusieurs mécanismes pour minimiser cet impact sur les performances :
• Sélection des modules : le développeur peut définir les modules à utiliser dans une requête en fonction de la page concernée.
.
• Autoload : utilisation des nouvelles fonctionnalités de PHP5 qui permettent de déclarer des classes ou des modules uniquement au moment de leur utilisation.
• Cache : les fichiers de configuration et les templates non PHP sont traités et convertis dans leur équivalent PHP afin d’être ensuite intégrés de façon beaucoup plus performante lors de chaque requête.
Au final, l’impact est donc faible dans la plupart des cas.
Un framework permet de réduire les temps de développement des applications en répondant de façon efficace aux problèmes les plus courants rencontrés par les développeurs. Il inclut généralement de
nombreuses fonctionnalités prêtes à l’emploi dont les implémentations sont bien rodées et utilisent des modèles de conceptions standard et bien implémentés. Le temps ainsi gagné sur les questions génériques
pourra être mis à profit pour les parties spécifiques de l’application.
De plus, l’utilisation d’un même framework dans différents projets contribue à l’industrialisation du
processus de développement : la structure de l’application et les méthodes de programmation sont standardisées, les compétences des développeurs sont réutilisables dans chaque projet.
Un framework est le fruit du travail de dizaines de personnes qui s’appliquent à corriger les problèmes ou les failles de sécurité découverts par l’ensemble des utilisateurs et à proposer de nouvelles fonctionnalités. C’est pourquoi les programmes d’un framework sont en général mieux conçus et mieux codés, mais aussi mieux débugués et donc plus robustes, que ce que pourrait produire un unique programmeur. Outre le gain de temps, on obtient un important gain en termes de qualité.
L’utilisation d’un framework est très fortement recommandée, afin de ne pas avoir à réinventer la roue et d’éviter les erreurs de conception classiques qui créent des problèmes de sécurité ou tout simplement des bugs.
Performances des logiciel en rapport avec le framework:
Beaucoup de développeur pensent que l’utilisation d’un framework ne peut que dégrader les performances d’une application. Ce n’est pas tout à fait exact.
Il est vrai qu’il existe en informatique un compromis très ancien et très habituel entre la qualité de l’architecture logicielle et des outils de développement d’une part, et les performances d’autre part. Avec le
temps, ce compromis finit toujours par être tranché en faveur des outils de développement, car la CPU coûte de moins en moins cher, tandis que l’heure de programmeur coûte de plus en plus cher. C’est cette logique
qui veut que nous ne développions plus en assembleur, bien que cela puisse être plus performant.
Mais il faut souligner aussi qu’un framework peut, bien souvent, faire gagner aussi sur le plan des performances. Cela simplement parce qu’il met à disposition du développeur des structures de code plus
complexes et plus optimisées que ce qu’il aurait produit seul. L’exemple le plus parlant est bien sûr celui d’un bon gestionnaire de cache, que ce soit sur des objets obtenus d’une base de données, ou bien sur des
fragments de page Html : là où un programmeur sans framework aurait eu du mal à réaliser son propre cache de manière complète et fiable, il dispose de classes prêtes à l’emploi qui amélioreront de manière
extraordinaire les performances de son application.
Avec PHP, le principal facteur de dégradation des performances vient de ce qu’il faut, à chaque requête, déclarer les différents modules, charger la configuration ou convertir en PHP des templates qui utilisent une
syntaxe spécifique.
Les frameworks utilisent plusieurs mécanismes pour minimiser cet impact sur les performances :
• Sélection des modules : le développeur peut définir les modules à utiliser dans une requête en fonction de la page concernée.
.
• Autoload : utilisation des nouvelles fonctionnalités de PHP5 qui permettent de déclarer des classes ou des modules uniquement au moment de leur utilisation.
• Cache : les fichiers de configuration et les templates non PHP sont traités et convertis dans leur équivalent PHP afin d’être ensuite intégrés de façon beaucoup plus performante lors de chaque requête.
Au final, l’impact est donc faible dans la plupart des cas.