Après le Bargento il y’a quelques semaines, c’est au tour de la MageConf 2014. Créée en 2013, c’est donc la deuxième édition qui s’est déroulée cette année à la Cartonnerie de Paris, et cette fois-ci je suis allé sur place !

10394025_561916623939927_8043222940189434660_n

Pour commencer, je suis vraiment ravi d’avoir pu participer, et ainsi voir les personnes qui composent la communauté Magento en France. D’ailleurs, comparé au Bargento, j’ai vraiment apprécié le fait que c’est une conférence faite par des développeurs, POUR des développeurs !

Hélas je ne pourrai pas vous faire un résumé aussi détaillé que pour le Bargento, mais les vidéos des conférences arriveront sur le net prochainement, et je n’hésiterai à vous les communiquer ici dès que possible 😉
Pour le moment, je vous propose un petit tour d’horizon des différentes conférences.

Sommaire :
– Magento 2 : au-delà du changement de version, un changement de paradigme ? – Par Gabriel Bouhatous
– Les tests unitaires dans Magento 2 – par Hadrien Collongues
– Disgusting Truth of Magento Enterprise : technical digging into the sources of architectural problems of EE – par Tim Bezhashvyly
– OpenGento, présentation de l’association
– Magento et OroCRM: le duo gagnant ? – par Sylvain Rayé
– Magento : du début à la fin – par Jacques Bodin-Hullin
– Les Lighting Talks :
Magento sous Docker : it’s a kind of magic – par Hadrien Collongues
     Pourquoi choisir Redis pour le cache et les sessions ? – par Nicolas Trossat
     Automatiser son workflow front-end avec Gulp – par Guirec Lefort
     Categories are wrong ! – par Tim Bezhashvyly
     Les 42 protips du dev’ Magento – par Pierre Martin

Magento 2 : au-delà du changement de version, un changement de paradigme ? – Par Gabriel Bouhatous

Cette conférence animée par Gabriel Bouhatous avait pour sujet Magento 2, que l’on attend depuis plus de 1500 jours désormais. Grosso modo, la plupart des informations avaient été dévoilées lors de la conférence de Gabriel lors du Bargento. Magento 2 va donc proposer toute une panoplie d’outils nativement (Varnish, Docker, etc…), qui étaient déjà possible de mettre en place avec Magento 1.x. Le fait d’avoir ces outils de façon native permettra, peut-être, d’augmenter leur taux d’utilisation. Ce qui fera de Magento un outil plus complet, et mieux construit. Encore de nombreux doutes planent cependant. Magento 2, à vouloir être très modulaire, ne le sera-t-il pas trop ? Les outils proposés nativement seront-ils réellement utilisés par tous ? L’année 2015 sera une année très importante pour les développeurs, avec la Dev Beta de Magento 2 fin 2014 et la RC en mars 2015.

Les tests unitaires dans Magento 2 – par Hadrien Collongues

Avec cette deuxième conférence, Hadrien nous propose une introduction à la mise en place de tests unitaires pour Magento 2. Comme il nous le démontre avec son électrocardiogramme, nous pratiquons des tests partout dans notre vie (pour détecter des anomalies etc…), et dans le web, c’est pareil ! Pour définir très simplement la notion de test unitaire, on gardera la phrase « Vérifier le fonctionnement d’une partie précise » de son application.

Mais alors, pourquoi faire des tests, si le site fonctionne correctement?
– Vérifier que le code fait ce qu’il est censé faire (tout simplement)
– Détecter les bugs au plus tôt
– Les tests sont un filet de sécurité
– Et beaucoup d’autres avantages (Détecter un problème de code avant une mise en production, qu’une nouvelle fonctionnalité ne casse pas une autre déjà existante etc…)

Et pourquoi plein de projets n’ont pas de tests?
– J’ai pas le temps
– C’est une perte de temps
– De toute façon mon code marche, pas besoin de tester

Hadrien insiste sur le fait que les tests sont importants, et le temps passé pour les mettre en place sera largement rentabilisé sur le long terme, évitant des plantages de votre applicatif lors de mise en production par exemple (Et qui évite de faire perdre des milliers d’euros à votre client !)

Le soucis c’est que Magento 1.x n’intègre pas nativement de solution pour mettre en place des tests unitaires. Des alternatives existent, comme le Magento Test Automation Framework, ou EcomDev_PHPUnit. Magento 2 utilisera PHPUnit pour la mise en place des tests unitaires.

Ces tests seront placés dans le dossier « dev/tests » de l’application.
Voici le résultat avec le Magento 2 actuel (a la date où la conférence à eu lieu) :

Tests: 11688, Assertions: 27899, Incomplete: 30, Skipped: 2.

Plus de 11 000 tests pour 28 000 assertions (même si les puritains préfèrent avoir 1 assertion pour 1 test). Les 30 incomplets sont des tests qui, comme leur noms l’indiquent, ont commencé à être mis en place, mais pas encore terminés. Et les 2 skipped, concernent des tests créés mais pas du tout développés pour le moment. Pour continuer dans les chiffres, cela représente 41% de couverture du code de Magento 2, c’est déjà pas mal mais cela peut être amélioré. On espère donc que d’ici la sortie de la version finale, ce pourcentage sera plus élevé 🙂

Les 3 étapes de la création d’un test sont les suivantes (d’autres écoles vous proposeront un processus différent, mais chacun choisira son camp) :

– On créé le test avec la valeur de retour voulue (ex: microdatas d’un produit), puis dans notre classe de produit on créé la méthode « getMicroData() » qui ne retournera rien pour le moment. Comme la fonctionnalité permettant d’avoir les micro data de notre produit n’est pas encore implémentée, elle retournera un résultat différent de celui de notre test, et renverra donc un ROUGE.

– On implémente la méthode voulue donc « getMicroData() » pour nous, de façon a ce qu’elle fasse ce que l’on souhaite et que le test passe au VERT.

– La dernière étape c’est le « refactoring », c’est a dire mettre au propre le code créé à l’étape précédente tout en gardant son test au VERT.

Pour voir les choses plus concrètement, je vous propose de visionner les slides de la conférence, qu’Hadrien a eu l’amabilité de poster sur son site !

Disgusting Truth of Magento Enterprise : technical digging into the sources of architectural problems of EE – par Tim Bezhashvyly

Cette conférence en anglais nous a été présentée par Tim qui, très ému de nous avouer que c’est sa dernière conférence sur Magento, nous a montré que Magento Enterprise avait ses faiblesses. Surnommé L’ « Enterprise Killer » , Tim nous a d’abord demandé les fonctionnalités qui sont disponibles dans Magento EE, le plublic a répondu, entre autre :
– Full Page Cache
– Partial Index
– Emerchandising
– Customer Segmentation
– etc…
Pour résumer, les 2 principales fonctionnalités qui font de Magento EE un outil « performant », sont le FPC et l’indexation partielle. C’est sur ces 2 points que Tim va nous faire une démonstration des plus surprenantes !

Il navigue sur la homepage, une page liste, et plusieurs fiches produit. Le fait de visiter ces pages les met en cache (FPC). Après cela, il passe une commande et va jusqu’à la fin du checkout. Le produit commandé va donc passer par la reindexation partielle de ses données. Tim lance manuellement le cron Magento, qui va faire appel à la réindexation partielle. Et là, suprise ! La homepage n’est plus en cache, il faut la regénérer. Pour la page liste et le produit commandé également. Et encore plus étonnant, un produit qui n’a pas été commandé, a vu aussi son cache vidé. Ce qui veut dire qu’à chaque commande, le full page cache est vidé, et pour un site qui a beaucoup de commandes, on peut dire que le cache ne reste que très peu de temps présent. Pire encore, le fait de devoir regénérer le cache peut poser des problème de stabilité sur le serveur ! Après cette démonstration, Tim ne peut que nous recommander de désactiver l’indexation partielle sur les Magento EE. Quitte à laisser visibles des produits qui ne sont plus en stock.

Pendant le reste de la conférence, Tim continuera a lister les inconvénients de Magento EE, mais aussi de Magento en général. Et conclura sur le fait qu’aucun CMS n’est aussi complet en terme de fonctionnalités que Magento pour le e-commerce, et que nous (développeurs et clients finaux), sommes obligés de faire « avec » ces problèmes.

C’est sur cette conclusion un peu morose que nous enchaînons avec la discussion libre de la matinée.

OpenGento

OpenGento c’est quoi ? Eh bien c’est une association de développeurs Magento en France, qui souhaite réunir la communauté française et organiser plusieurs évènements. Elle est en train de se mettre en place, et son nom de domaine vient d’être réservé 🙂 Ce qui veut dire que l’on verra prochainement le site de l’assoc’ !
Le prochain évènement prévu par OpenGento est un week end de coding. Du vendredi soir jusqu’au dimanche, à Toulouse, pour pouvoir se rencontrer, passer un moment ensemble, et aussi : CODER !
Des gens sympas, une association super, et des évènements pour se réunir, la communauté Magento française n’a plus aucune excuse 🙂

Magento et OroCRM: le duo gagnant ? – par Sylvain Rayé

Je ne m’étalerai pas très longtemps sur cette conférence, qui était surtout une présentation de l’outil OroCRM, et en tant que dev, je vous avouerai que je n’ai pas retenu grand chose 🙂
Pour information, OroCRM a été créé par 3 personnes dont Yoav Kutner, ancien CTO et co-fondateur de Magento (lui-même !). Grâce a cet outil, vous pourrez gérer vos clients, vos prospects, les commandes de vos clients etc… L’édition d’un client dans OroCRM sera répercutée dans Magento, et inversement. Vous pourrez aussi créer une commande depuis OroCRM, si le client existe déjà dans l’outil. Sylvain a cherché comment créer un nouveau client dans OroCRM, mais la fonctionnalité n’a pas été trouvée, donc la création de client ne se fait que dans Magento pour le moment !

Magento : du début à la fin – par Jacques Bodin-Hullin

Nous utilisons tous une panoplie d’outils dans notre quotidien de développeur. La conférence de Jacques est là pour nous en citer des très bons, qui ont le mérite de pouvoir communiquer ensemble !

Lors d’un projet, que ce soit le client final, le chef de projet, le développeur etc… les problématiques qui se présentent à nous sont nombreuses :
– Rassembler les informations
– Communiquer les uns les autres
– Automatiser les tâches répétitives
– Tester
– Monitorer ses environnements
– etc… etc…

Je n’irai pas de les détails techniques de ces outils, mais libre à vous de les mettre en place et de nous partager votre expérience !

Jenkins – Outil d’intégration continue
Redmine – Bug tracker et gestion de projets
CasperJS – Outils de mise en place de tests fonctionnels (différents des tests unitaires présentés précédemment)
Git (ou Bitbucket) – Outil de versionning (SVN mais en mieux)
Fabric – Librairie en Python permettant de lancer des scripts de déploiement ou des tâches d’administration sur un système. Exemple, activer/désactiver le mode maintenance du site :
Capture-4

HipChat – Programme de chat qui peut interagir avec Bitbucket, Jenkins etc… Gère les chat en groupe, la vidéo et plein d’autres choses !
Datadog – Outil de monitoring
Vagrant – Permet de créer des machines virtuelles (comme Docker)

C’est bien beau d’avoir tous ces outils, mais mes environnements?
Capture-5

Dev : C’est votre local, vous commitez ce que vous voulez dessus
Develop : Une fois vos devs terminés sur « Dev » vous les mettez dessus
Integration : Serveur de recette
Staging : Serveur ISO Pod qui permet de mettre les correctifs/évolutions avant de les passer en production.
Production : Pas besoin de le présenter 😉

Et maintenant, la magie opère :
Capture-6

Le développeur utilise Vagrant (ou Docker) comme environnement de développement. Très pratique, la virtualisation permet de mettre en place un environnement en très peu de temps !
Il versionne ses sources avec Git.
Jenkins lance les tests d’intégration continue et communiquer avec Fabric pour lancer les déploiements voulus. Il peut aussi interagir avec Redmine pour mettre à jour les demandes.
N’oublions pas Datadog qui est là pour monitorer, et HipChat qui, relié aux autres outils, préviendra vos équipes des différentes actions 🙂

La mise en place de tout cela prend du temps, et peut être adapté à vos besoins, c’est un exemple de façon de faire. Mais une fois la machine mise en place, le gain de temps et de qualité est non négligeable !

Pour ceux qui souhaite accéder à la présentation, c’est par ici !

Lighting Talks

Pour terminer la journée déjà remplie en informations, nous avons terminé la journée avec 5 lighting talks de 10 minutes chacun. Ce fut rapide, mais intense !

Magento sous Docker : it’s a kind of magic – par Hadrien Collongues

Après Vagrant dans la conférence précédente, voici ici Docker. Docker est donc un outil permettant de créer des machines virtuelles, et de mettre en place des environnements de développement très rapidement. Hadrien nous a même signalé que le temps de ce lighting talk, nous aurions pu mettre en place une machine sous Docker 🙂 A noter, Docker fera partie de Magento 2 ! Les slides ici !

Pourquoi choisir Redis pour le cache et les sessions ? – par Nicolas Trossat

Pour faire simple, Reddis va vous permettre de stocker vos caches et vos sessions dans la RAM de votre serveur. Cela évite donc de trop faire appel a votre disque dur, et donc de meilleures performances !

Automatiser son workflow front-end avec Gulp – par Guirec Lefort

Gulp vous permettra de réunir, et minifier les JS de votre site, de façon bien meilleur que ce que peut vous proposer l’outil natif de Magento !

Categories are wrong ! – par Tim Bezhashvyly

Tim notre « Enterprise-killer » est de retour, et s’attaque cette fois-ci au catégories dans Magento. Il n’est pas du tout d’accord avec le fonctionnement de celles-ci dans Magento, et il nous le fait comprendre !

Les 42 protips du dev’ Magento – par Pierre Martin

Plein de trucs et astuces, et aussi de bonnes vannes qui sont disponibles ici !

La MageConf 2014, c’est terminé ! Mais sera de retour l’année prochaine ! On restera également à l’écoute de l’association OpenGento, et de son week end à Toulouse d’ici plusieurs mois. Cette conférence réuni beaucoup beaucoup d’informations, et d’ailleurs, je n’ai pas pu tout vous transmettre dans ce résumé. Je ne peux que vous conseiller de venir l’année prochaine ! N’oublions pas Christophe Le Bot et ses deux séances génialissimes de Mageopardy, où il nous donnait la réponse, et le but de l’assemblée était de deviner la question 🙂

Les conférences ont été filmées, j’essaierai de vous mettre les liens ici dès qu’ils seront disponibles ! De plus, pour les gens qui étaient présents, n’hésitez pas à donner vos retours, et pour les absents, vous trouverez les liens des présentations (pas encore toutes présentes mais elles le seront peut-être) sur le site de Joind In !

A bientôt !

Bonus : Les goodies ! Le bilboquet Monsieur Biz et le bérêt so frenchy MageConf !

B2_-kI1IIAEL0Jk

Bonus 2 : Nabilla était présente aussi !

B2-eHhfIcAA-5Co

Résumé de la MageConf 2014
Share on FacebookTweet about this on TwitterShare on Google+Email this to someone
Taggé sur :        

Une réflexion sur “Résumé de la MageConf 2014

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous utilisons des cookies afin de nous assurer de vous proposer la meilleure expérience sur ce site.
Ok