Notre retour sur la mageconf
⏲️ ~6 min de lecture
Publié le
par
Damien
Nous revenons de la première édition de la Mageconf, une journée de conférences dédiée au développement de site e-commerce avec Magento.
Le programmese proposait de faire le tour des bonnes et des mauvaises pratiques, d'aborder des méthodologies de développement. La plupart des présentations sont disponibles en ligne, les liens sont pour le moment disséminés sur le compte Twitter @getMageConf
Voici ce que nous avons retenu de cette journée :
Bonnes et mauvaises pratiques Magento #
Ces deux conférences étaient assez proches, il s'agissait d'une piqûre de rappel de ce que devrait savoir tout développeur Magento :
- Ne pas écrire dans le coeur de l'application
- Ne pas casser l'architecture MVC
- Respecter la modularité de Magento (en faisant toutefois attention à ne pas tomber dans l'excès)
- Éviter les rewrites superflus et privilégier les events/observers quand c'est possible.
On pourrait penser qu'il ne s'agit là que de banalités, mais le fait que deux conférences y aient été consacrées nous font penser que ces pratiques qui peuvent nous sembler naturelles ne sont pas encore respectées par tout le monde.
Montée en version #
De cette présentation, nous retiendrons surtout une liste de ProTip™ :
- Attention aux versions des modules communautaires : sont-ils compatibles avec la version cible ?
- Penser à faire un diff des sources de votre projet et des sources "vanilla" de la version actuelle de Magento, afin de détecter d'éventuels "hacks" maison (bien que ce soit contre les bonnes pratiques en principe, gare à celui que j'attrape à faire ça)
- Attention au copier/coller des nouvelles sources par dessus les anciennes sources : il se peut que des fichiers qui existaient avant ne soient plus là dans la nouvelle version, laissant ainsi ces fichiers inutiles dans votre système de fichiers.
- Toujours, toujours avoir une sauvegarde de prête en cas de pépin (si vous utilisez un logiciel de déploiement type Capistrano, ça devrait déjà être le cas :) )
Agilité #
D'une manière générale, il s'agissait d'une présentation rapide de l'agilité et de quelques méthodes qui en découlent : Scrum, Kanban, le pair programing,… autant de pratiques déjà en place chez Occitech (tellement on est agile, on fait nos pomodoros en position du lotus, c'est dire).
On retiendra cependant une très bonne idée de l'ami Nicolas : si on bloque plus d'une heure sur une tâche, on la signale en tant que bloquée dans le Kanban.
Les outils pour gagner en productivité #
Sauvez des vies, faites un reflog
Qui n'a jamais fait un git reset --hard malencontreux, sans avoir pushé ses précédents commits ? Dans ces cas là on envisage le pire : tout recommencer, se rouler en boule au sol, annoncer à ses collègues qu'on se retire définitivement de la vie de codeur.
Soyez sans craintes mes frères, dans son infinie miséricorde Jacques Bodin-Hullin nous rappel que git, à l'instar de Séga, c'est plus fort que toi.
Ainsi, il vous suffira de lancer la commande git reflog pour avoir tout votre historique git local, y compris vos commits resetés, vous donnant alors la possibilité de faire un reset sur ces derniers.
N'ayez plus peur de tester #
Même que les tests se présentent sous forme de (gentil) fantôme. Jacquesbh, toujours lui, nous a rapporté un beau cadeau dans sa hotte (après tout c'est bientôt noël) le résultat d'un hackaton allemand autour de Magento.
Sans plus attendre, je vous présente hackaton-casperjs, une première base solide pour tester sa boutique Magento avec casperjs. Pour l'instant peu de fonctionnalités sont testées, mais il ne tient qu'à vous de contribuer au dépôt.
Si c'est le CLI, j'y vais aussi #
Le dernier outil qu'on retient de la conf' de Jacques est surtout destiné aux afficionados de la ligne de commande (on a quelques uns par ici, mais ils tiennent à garder l'anonymat).
Tig est simplement un interface en mode texte pour git, et il pourra assez aisément remplacer gitk par exemple.
Les imports/exports #
L'import de données #
Alors pour ceux qui ne le savent faire un import via les dataflows de magento est très long/lent, et donc il est impératif de trouver une solution alternative pour un import de catalogue complet. En effet les chiffres donnés étaient : un import de 1000 produits en 140 secondes via les dataflows contre 5 à 20 secondes avec des techniques alternatives.
Les différentes pistes étaient:
- Passer par les dataflows (fonctionnel, mais très/trop lent)
- Passer par un script d'import à la main (hautement fonctionnel, mais relativement long).
- Passer la nouvelle fonctionnalité d'import de Magento (plus rapide, mais impossibilité de créer des produits configurables à partir de produits simples).
- Nous rajouterons Magmi, qui n'a pas été mentionné mais c'est l'outil d'import que nous utilisons chez Occitech lors de l'import de catalogue complet (rapide, recrée l'arborescence des catégories, créé des produits simples, configurables ou groupés, importe les images, etc. ).
- Et enfin l'outil crée par Matthieu Vion baptisé MDEI qui est un outil permettant de générer les requêtes SQL qui vont bien pour créer où mettre à jour des produits Magento (Avec des performances.)
L'export de données: #
Grosse révélation: le middleware.
Passer par un middleware permet d'épargner votre serveur ou se situe la boutique Magento, et surtout de modéliser des tables de données à votre guise sans être contraint par la structure de magento en utilisant, par exemple, les observeurs pour envoyer les données à exporter sur votre nouvelle table en temps réel.
Cette solution est élégante et permet de d'avoir en export que les données que vous voulez. Une petite problématique est la disponibilité du middleware doit être constante sinon vous perdrez des données lors de l'export.
À noter une solution rapide mais moins élégante est de faire une synchronisation master-slave de votre base de données : vous êtes certain qu'elle est à jour, mais vous avez en contre partie plein de données inutiles, et surtout une nécessité d'être un gourou en SQL pour extraire les données voulues.
Et maintenant ? #
Une association des développeurs Magento va se créer début 2014, dans laquelle nous comptons bien nous impliquer, tout comme nous contribuons déjà modestement à Magento 2, afin de le rendre encore meilleur.
Ce n'était donc qu'un début, vivement la suite.
Cet article vous a plu ? Sachez que nous recrutons !