title:      ★ Définition et avantages d&#39;un framework web
slug:       definition-et-avantages-d-un-framework-web
date:       2007-01-17 20:47:49
type:       post
vignette:   images/logos/frameworks_web.png
contextual_title1:  Sortie de Django 1.0, une année de nouveautés
contextual_url1:    20080902-sortie-de-django-10-une-annee-de-nouveautes
contextual_title2:  Google App Engine : avantages et inconvénients
contextual_url2:    20080409-google-app-engine-avantages-et-inconvenients
contextual_title3:  ★ Astuces et bonnes pratiques Django
contextual_url3:    20080211-astuces-et-bonnes-pratiques-django

<p>J'ai récemment reçu un mail de maxime me rappelant à juste titre que le terme <strong>«&nbsp;framework web »</strong> n'est pas familier pour tous mes lecteurs et qu'un billet à ce sujet serait le bienvenu. Je vais essayer de rester le plus accessible possible en utilisant une métaphore bien connue, après <a href="https://larlet.fr/david/biologeek/archives/20060907-choisir-un-framework-web/">celle de la caisse à outils pour le choix d'un framework web</a>, passons à la cuisine pour les non bricoleurs (comme moi).</p>

<h2>Définition d'un framework web</h2>


<p>L'objectif est de faire un bon gâteau. Généralement, les personnes qui ne savent pas cuisiner ou qui aiment particulièrement une recette très connue choisissent un gâteau tout prêt qui est vendu dans un sachet qu'il suffit de mettre au four, c'est ce que l'on appelle en développement web un <abbr title="Content Management System">CMS</abbr> ou Système de Gestion de Contenu. C'est très pratique et on y a tous goûté un jour mais il est quasi-impossible de changer la recette, au mieux vous pouvez rajouter un peu de nappage sur le dessus mais ça reste succinct... et frustrant. De plus, avouons-le, c'est loin d'être de la grande cuisine, c'est correct mais ça en reste là. Enfin, et c'est souvent le plus gênant, les sachets vendus sont pour 4 et comment faire lorsque vous êtes 6 ou 2&nbsp;?</p>


<p>Heureusement tout ces inconvénients disparaissent lorsque l'on sait cuisiner. On choisit la recette qui nous plaît, les ingrédients parmi les meilleurs et on fait un bon gâteau. Le problème de cette méthode est qu'elle prend du temps. Or, il y a des combinaisons d'ingrédients que l'on retrouve tout le temps comme mélanger des œufs et de la farine ou monter des blancs en neige. Si seulement on pouvait directement avoir accès à ces ingrédients tout prêts&nbsp;!</p>


<p>En cuisine, ce n'est pas évident et cela demanderait un frigo énorme, mais en développement web on a trouvé la parade&nbsp;: les frameworks web.</p>


<p><strong>Un framework web est donc un regroupement de macro-ingrédients qui forment un tout cohérent et que l'on a juste a assembler selon nos besoins pour faire un gâteau avec notre propre recette.</strong></p>


<h2>Avantages d'un framework web</h2>


<p>Liste non exhaustive&nbsp;:</p>
<ul>
<li><strong>Le premier avantage est la liberté</strong>&nbsp;: c'est vous qui décidez de la recette pour arriver au gâteau souhaité et personne d'autre, si vous n'aimez pas le café il suffit de ne pas en mettre, c'est tout simple. Ce soir vous êtes 9&nbsp;? Une petite conversion et le tour est joué. Aïe, ce macro-ingrédient n'existe pas encore. Aucun problème il suffit de le créer vous-même&nbsp;;</li>
<li><strong>Le deuxième est la rapidité</strong>&nbsp;: faire votre gâteau à partir des ingrédients de base prendrait trop de temps, l'objectif est quand même d'être rassasié rapidement . Les macro-ingrédients sont le compromis idéal&nbsp;;</li>
<li><strong>Le troisième est la qualité</strong>&nbsp;: les macro-ingrédients ont été assemblés par des personnes très compétentes qui ont normalement envisagé toutes les possibilités d'assemblage. De plus, ceux-ci sont distincts donc vous pouvez facilement modifier/améliorer le vôtre pour ensuite éventuellement le partager ou directement récupérer celui d'un ami&nbsp;;</li>
<li><strong>Le quatrième est la cohérence</strong>&nbsp;: pour éviter les fautes de goût, tous les macro-ingrédients ont été assemblés dans un but commun qui est de faire de bons gâteau&nbsp;;</li>
<li><strong>Le cinquième est la pérennité</strong>&nbsp;: tout le monde peut monter des blancs en neige, mais il faut toujours retenir ce qu'il faut mettre à la bonne température, combien de temps tourner dans un sens,... le macro-ingrédients «&nbsp;blancs en neige » est toujours fait de la même manière, la meilleure. Et si jamais un jour il en existe un nouvelle encore meilleure, elle sera utilisée sans même que vous le sachiez.</li>
</ul>

<p>Bon je crois que ça suffit pour convaincre les plus piètres cuisiniers (je n'ai pas mentionné les différentes cuisines possibles mais elles sont bien sûr nombreuses, <a href="https://larlet.fr/david/biologeek/archives/20060505-pourquoi-programmer-en-python/">ma préférée étant celle du Python</a>). S'il y a des marmitons inspirés vous pouvez mettre votre recette en commentaire :-).</p>


<p>Dans un registre un peu plus technique/sérieux, vous pouvez lire l'article de Jon initulé <a href="http://www.jondesign.net/articles/2006/mar/31/cms-et-frameworks-web/">CMS et frameworks web</a> ou <a href="http://www.coderbattery.com/top-13-reasons-to-use-a-web-framework-and-never-look-back">Top 13 reasons to use a web framework and never look back</a> de CoderBattery.</p>
