Utiliser un framework ? Pourquoi faire !

En ce moment, la grande mode, c'est les frameworks. Tellement une grande mode, que la liste est immense !

Au niveau PHP, on connais les principaux :

  • Zend Framework
  • Code Igniter
  • Symfony
  • CakePHP
  • EZPublish
  • ...

Mais de l'autre côté, on entends aussi beaucoup parler du fait que les frameworks sont lourds, qu'ils embarquent plein (trop) de choses inutiles, qu'ils ralentissent la distribution des pages web. Même Rasmus Lerdorf le pense !

Mais alors qui croire ?

Paul Jones, au travers du site phpadvent.org (sorte de calendrier de l'avent pour PHP) à publié un article sur lequel il exprime sa pensée sur les frameworks. Une idée générale sort de sont article. Une idée que de plus en plus de développeur commencent à suivre.

Développer son propre framework depuis le début, c'est bien ! Si vous êtes tout seul, vous aurez une base réutilisable pour créer des applications en ligne. Mais à partir du moment ou vous serez plusieurs, les conflits vont commencer à menacer votre réalisation. Que ce soit une architecture complexe, une vision différente du style de développement (camelCase, etc), il y aura toujours quelque chose qui ne vas pas.

De plus, avec le temps, vos clients vont vous demander de plus en plus de fonctionnalitées. Très souvent, ce sera demandé dans l'urgence. Tellement urgent que vous ne prendrez pas le temps de faire la documentation. Dans un an, vous aurez un framework relativement complet, mais inexploitable que par vous. Quiconque tentra de comprendre quelque chose y sera perdu, la manque de documentation ne faisant qu'empirer les choses.

Mais alors ? quelle est la solution ?

D'après moi, et malgré les deux écoles qui s'affrontent sur le oui/non de l'utilisation d'un framework, je dirai que cela dépends. En effet, utiliser un framework comme ZF pour réaliser le site d'un village de 500 personnes, c'est un peu comme apporter un missile nucléaire pour faire sortir un cambrioleur !

Par contre, si la mairie est plus importante, et demande des moyens plus conséquents (gestion du personnel, des évènements, etc). L'usage d'un framework semble plus approprié. De plus, il est fort probable qu'ensuite, la mairie vous demande, à vous ou à une autre agence d'implémenter de nouvelles fonctionnalitées. Si vous avez utilisé votre propre framework pour ce type de site, vous risquez de rencontrer des problèmes lorsque la mairie souhaitera passer commande auprès d'une autre companie. Et si vous vous dites que c'est pas grave, comme ça elle sera obligée de traiter avec vous, vous vous mettez le doigt dans l'oeil ! Elle tentera de contacter une autre agence qui refusera le travail car ce qui est déjà en place est un véritable chantier, inintelligible pour eux, ou qui mettrait trop de temps à comprendre. Elle sera obligé de traiter avec vous (alors qu'elle aura traité avec une autre agence pour une bonne raison) et votre relation sera plus que tendue.

C'est vraiment cela que vous voulez ?

Donc avant de réaliser un site web/une application en ligne. Réfléchissez à l'usage de votre réalisation, maintenant et demain, afin de prendre la bonne décision.

Si votre soucis face aux framework est un problème de temps de réponses, sachez que vous pourrez gérer la plupart de vos visiteurs sans aucun soucis ! En moyenne, les frameworks sont capable de retoruner en moyenne 100 pages par secondes ! Ce qui corresponds à 100 visiteurs par secondes !

C'est énorme !

Si vous êtes toujours sceptique, vous pouvez toujours mettre en place des systèmes de cache, tel qu'APC, qui réduira fortement le temps de traitement !

Enfin, si vous êtes toujours sceptique, sachez que Yahoo et Dailymotion utilisent Symfony (qui est l'un des pires en terme de temps de traitement d'apès le benchmark de Rasmus Lerdorf !). Alors vous allez me faire croire qu'avec vos 500 visiteurs par jours, un framework n'est pas adapté ?

Laissez moi rire (:

Filed under  //  Development   General   Projects   Rasmus Lerdorf   Symphony   Zend Framework   apc   benchmark   cakephp   codeigniter   ezpublish   question   temps   utile  
Posted by Cyril Nicodème