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

Tab ou espace : telle est la question

publié le 14/01/2014
Pour un premier article, soyons originaux, nous allons... râler. 

Il était une fois...

Ce matin alors que je m'attelais à modifier une vue magento, j'ai pu remarquer que l'indentation était composée à 100% d'espaces. Certes, ce n'était quand même pas la première fois que je rencontrais ce cas de figure (surtout dans Magento), et le fait que Zend Studio ait refusé de considérer ces espaces comme de l'indentation n'était que modérément ennuyeux mais c'était la première fois que je me suis poussé à aller voir sur Stack Overflow quelle était la bonne pratique en la matière.

Et là c'est le drame

l'article de Stack Overflow était noté comme peu fiable et d'après les messages d'alerte, le fil de discussion avait du se terminer en pugilat entre les différentes religions existant en ce domaine. Après tout, là où les geeks sont les plus forts, c'est pour se créer des religions :

Moi, être unique, indenter avec tabs, ouvrir blocs juste après la fin de la signature des méthodes et utiliser echo... et manger Mac Do...
Ce serait tellement dommage de ne pas avoir de sujet pour troller, on finirait par s'ennuyer.

Les protagonistes

D'un coté, les tenants de la tabulation avançant avec logique que la tabulation est faite pour ça et que cela permet de surcroit aux différentes religions de cohabiter par l'intermédiaire d'un IDE digne de ce nom.

De l'autre les tenants de l'espace qui font valoir que justement la tabulation n'est pas une notion fixe et que le code pourrait s'en trouver retourné sens dessus dessous.

Pas facile et pour ma part, je préfèrerait ne pas avoir à arbitrer ce genre de débat dans une équipe de développement.

Et donc ?

Et ben... 

Au final et en l'absence de réponse, je vais continuer à indenter à grands coups de tabs et attendre le jugement dernier.

bonne pratique développement

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