GLOB
Montagne, Informatique & Pensées...

De la difficulté de développer une nouvelle application web

publié le 24/01/2014

Après avoir travaillé sur des solutions e-commerce OS Commerce et Prestashop, je travaille actuellement sur une solution Magento. Il est de notoriété publique que Magento est d'une grande complexité, après une formation de trois jours et deux mois de développement, je puis le confirmer. Il existe deux opinions répandues chez les développeurs ayant eu l'occasion de travailler sous Magento :

Magento : un système trop compliqué et mal conçu

Il s'agit là d'une opinion répandue chez les développeurs qui se sont cassés les dents sur la solution ou qui ont trouvés bien plus simple de développer sur d'autres solutions. On ne saurait leur donner tort, selon les besoins, s'appuyer sur une solution Magento peut se rapprocher de l'usage du char d'assaut pour écraser une mouche.

Penser cela ne veut pas dire que l'on est un mauvais développeur même s'il faut bien avouer que développer proprement en Magento nécessite une niveau de développeur au dessus de la moyenne (je ne parle pas pour moi ...)

Magento : un système performant et très complet

Il s'agit de l'opinion majoritaire chez les grosses agences E-commerce et leurs développeurs. Une opinion qui est très juste, Magento permet,même en version community, de faire une foultitude de choses et les modules supplémentaires qui apportent à la solution une grande flexibilité sans avoir besoin de recourir à de coûteux  développements.

La complexité du code est très liée à ces capacités étendues. Pour prendre une comparaison souvent abordée, Prestashop a un code d'une grande simplicité, qui pourrait être rapproché de ce que l'on faisait il y a 10 ans en matière d'applications Web mais ses modules ne peuvent pas être développés et installé avec autant de facilité (à fonctionnalité équivalente).

Mais alors où est la vérité

La vérité est ailleurs. Fox Mulder

Nous en venons ici à ce qui fait d'une solution une bonne solution web. En la matière, on pourrait séparer trois types d'applications web :

  • Les applications en SaaS
  • Les applications pour utilisateur final
  • Les applications-frameworks pour développeur
Le défaut principal des deux applications web sus-citées est qu'elles semblent ne pas vouloir choisir entre les deux derniers modèles.

Le cas le plus simple est celui des applications SaaS, on se rapproche ici des applications propriétaires à l'ancienne, à part les développeurs de la société éditrice, personne ne peut apporter de code et la société n'a donc pas (ou très rarement : modules de paiement, webservices ...) à se préoccuper de l'interface de modules extérieurs avec son système.

Pourquoi choisir entre les développeurs et les utilisateurs finaux

Pour une raison très simple : un utilisateur ne veut pas toucher au code et un développeur veut aller vite (voire très vite).
Une solution qui choisit de s'orienter plus vers l'utilisateur final choisit de fournir un programme d'installation complet, des procédures simplifiées d'installation de modules et un logiciel utilisable tel quel.
Une solution orientée développeur devra fournir aux développeurs de moyen de faire ce qu'ils veulent, des fonctionnalités de bases limitées mais couvrant les besoins globaux de l'application. L'objectif est de fournir un cadre (et oui un framework) aux développeurs pour leur permettre de créer, à partir d'un cadre propre et net, une nouvelle application.

Ces deux besoins sont très contradictoires puisqu'une application utilisateur mettra en place des développements très complexes pour gérer un maximum de fonctionnalités et comportera un grand nombre de paramètres pour gérer toutes ces fonctionnalités. D'un autre coté, le développeur souhaitera s'adapter au plus près au besoin exprimées par son donneur d'ordre.

En la matière, OS Commerce, Prestashop et Magento sont en train de basculer progressivement vers un modèle d'application utlisateur ce qui explique pour une grande part la complexification des codes sources. Ces solutions essayent de ménager la chèvre et le chou en conservant leur attrait auprès des développeurs e-commerce et, par l'apport d'une solution de plus en plus fonctionnelle, en fournissant aux utilisateurs finaux une solution utilisable directement.

La solution

Ce qui manque principalement, aujourd'hui au monde de l'e-commerce, mais aussi à de nombreux autres domaines, c'est une solution pour développeur, une solution qui serait un juste milieu entre un framework et une solution utilisateur. Une solution qui apporterai les bases du développement des applications e-commerce moderne tout en ne développant pas trop de fonctionnalités complexes pour laisser ce choix aux développeurs


développement conception magento prestashop

Pourquoi un blog ?

Il me fallait bien entrer dans la modernité, après tout, un développeur sans blog, c'est comme un trailer sans pipette ça fait pas sérieux.

Je ne suis pas sûr que ce blog fera sérieux mais, si lecteur il y a, ce sera à eux d'en décider.


Powered by Jalmot