Je vous propose plusieurs billets, sur la conception logicielle de qualité.
Une bonne pratique, quand on veut faire du logiciel de qualité, c’est de séparer les fonctions en « couches ».
Ainsi, on a l’habitude, pour un système de publication web (e-commerce ou autre CMS) de séparer les choses en trois couches :
- Couche Présentation
- Couche « applicative »
- Couche d’accès aux données
C’est ce qu’on appelle le modèle MVC : Modèle Vue Contrôleur.
La première couche est simple à définir : c’est tout ce qui touche à la génération de la page HTML. Normalement, le code HTML doit être exclusivement regroupé dans cette couche.
Le dernière couche est également simple à comprendre : elle doit couvrir l’ensemble des accès au système de stockage des données : la base de données quoi. Elle regroupe donc, si le système est basé sur une base de données relationnelles, l’ensemble des accès SQL (il ne doit donc pas y en avoir sur les autres couches).
A partir de ces deux définitions, on peut déduire que la couche du milieux contient… le reste.
L’avantage de cette approche :
On ne mélange pas tout. Programmer l’accès à une base de données, ou programmer une interface HTML, ce n’est pas du tout la même chose.
Normalement, cela doit permettre de faire évoluer le site plus vite, d’améliorer sa qualité (moins de bugs).
Je dis normalement, parce qu’il faut bien savoir que… un mauvais programmeur fera du mauvais travail, quelque soit les règles qu’on peut mettre en place.
Autre paradoxe : programmer comme cela, en couche, cela augmente mécaniquement la taille du code.
Le programme le plus court sera celui ou vous mélangez tout…
Et pourtant, là aussi mécaniquement, moins il y a de code, et moins il y a risque de bug.
On est donc à la recherche d’un juste milieu.
Bon, ceci dit, personne de vraiment sérieux ne remet en cause le modèle de ces trois couches.
D’ailleurs, la plupart des plate formes e-commerce respectent cette structure : Magento, Prestashop, …



