bandeau_mageconf

La MageConf, comme si vous y étiez!

Notre équipe était présente à la MageConf 2014, une journée de partage et d’échanges par les développeurs pour les développeurs autour de la technologie Magento.
Un grand merci à Antoine pour son résumé très complet!

Au programme :

  • Magento 2
  • Les tests unitaires dans Magento 2
  • Comment optimiser Magento Enterprise
  • Le projet OpenGento
  • Magento et OroCRM: Le duo gagnant ?
  • Méthodologie Magento
  • Magento sous Docker
  • Redis
  • Workflow avec Gulp
  • Catégorisation
  • Protips

09h20 / 10h00 – Magento 2 : au-delà du changement de version, un changement de paradigme ? Gabriel Bouhatous – e-Commerce Academy

B285WhuIQAAh1ig

Magento dans les chiffres, c’est:

  • 250K sites en production
  • 30% du top 100K Alexa
  • 6000 modules sur Magento Connect

Pourquoi tant de retard sur Magento 2?

Le rachat d’Ebay a entraîné une réorganisation importante des équipes en interne. On sait également que le CTO, Yoav Kutner et l’architecte, Dima Soroka, sont partis vers OroCRM au même moment.
Ebay a ensuite tenté d’intégrer Magento au sein d’X-Commerce. Sans succès! Il y a alors eu ré-allocation des ressources de X-Commerce vers Magento 2! Bref, un beau fouillis en plein milieu de la conception d’une version majeure!

Magento 2 a du retard, certes, mais c’est également au profit de la qualité et de la robustesse. Fini de bricoler comme c’est parfois le cas dans certaines parties de Magento 1.x. Magento 2 s’annonce comme une plateforme vraiment clean.

Les équipes techniques expérimentent beaucoup. On notera notamment le tentative d’intégration du moteur de templates Twig à partir des versions dev44/dev45, pour au final, être supprimé en dev49 (sourire).

Des changements majeurs se sont opérés depuis ces 9 derniers mois. La documentation d’avant mi 2014 est donc à oublier.

Au registre des nouveautés introduites par cette nouvelle version, on relèvera:

  • Connect sera à oublier, au profit de Composer.
  • PhpUnit en temps que dépendance.
  • Toujours du Zend Framework 1. Le coup d’une intégration complète de ZF2 aurait été trop importante pour le gain apporté.
  • On notera cependant l’utilisation de certains composants ZF2 comme Zend\Di, Zend\ServiceManager ou Zend\I18n par exemple.
  • Utilisation de RequireJs pour la gestion des dépendances JS entre modules.
  • Le FPC et les indexers améliorés introduits depuis la EE 1.13 seront natifs sur les version CE. Ces derniers seront encore refactorisés dans cette nouvelle version.
  • Support natif de Varnish avec gestion des ESI.
  • Disparition de la God Class Mage au profit d’un ObjectManager (fini donc les Mage::getModel(), Mage::helper() etc…).
  • Les events seront remplacés par des intercepteurs.
  • Sur le papier, ça permettra ‘d’intercepter’ une méthode entière, afin de faire nos customisations, plutôt que ‘d’observer’ un event à un endroit donné/figé au sein de cette même méthode.
  • On pourra également agir avant ou après l’appel de cette méthode. Ça semble intéressant!
  • L’apparition/le déploiement d’une couche ‘Service’ afin d’étendre plus facilement l’API.
  • Il y aura 1 fichier de layout par handle et le merge partiel des layouts sera possible.
  • La notion de codepool disparait.
  • Plus ‘d’Action’ dans les controllers. Chaque action aura son ‘sous controller’ dédié, avec une méthode execute.
  • Il y aura apparemment un outil pour gérer les déploiements.

Cependant, rien n’est parfait, Magento 2 ne le sera pas non plus:

  • Pas de rétrocompatibilité avec Magento 1.x.
  • La migration de DB 1.x vers 2 a également été oublié. Magento préconise un export/import des data clients/commandes. Ils comptent beaucoup sur la communauté pour ce point d’ailleurs (tirer la langue).
  • Pas de roadmap des nouvelles fonctionnalités qui devraient être implémentées début 2015.
  • Pas d’alternative au modèle EAV, bien qu’un adapter MongoDb semble présent.

Magento 1.x devrait au moins être maintenu pendant 3 ans.

B29HEnpCEAAp

10h30 / 10h10 – Les tests unitaires dans Magento 2 – Hadrien Collongues – Occitech

B29PF4CIQAArqD

Cette conférence avait pour but de présenter le framework de tests unitaires PhpUnit, et de donner un exemple simple d’un test au sein de Magento 2. Concrètement, le but n’est pas de couvrir 100% du code par des tests unitaires. On priorisera naturellement la logique métier de notre application/nos composants.

Chaque test doit être le plus petit possible, ou tout du moins ne devrait tester qu’un seul aspect/qu’une seule fonctionnalité, afin notamment de favoriser le temps de correction/debug lorsque les tests ne passent plus.

Très simplement, PHPUnit c’est:

  • Un runner (pour executer les tests)
  • Des tests
  • Des fixtures qui permettent de définir un environnement/contexte
  • Des test suites (un ensemble de fixtures et de tests)
  • Des assertions (méthodes), qui permettent de vérifier un état
  • Des formatters afin de mettre en forme les résultats des tests

PHPUnit, et plus généralement le Test Driven Development (TDD), permet de détecter les dysfonctionnements applicatifs très tôt dans le cycle de vie d’un projet.
En effet, cette technique de développement favorise l’écriture des tests en amont de l’écriture du code source.
Le cycle préconisé par TDD comporte cinq étapes:

  1. Écrire un premier test.
  2. Vérifier qu’il échoue (car le code qu’il teste n’existe pas), afin de vérifier que le test est valide.
  3. Écrire juste le code suffisant pour passer le test.
  4. Vérifier que le test passe.
  5. Refactoriser le code, c’est-à-dire l’améliorer tout en gardant les mêmes fonctionnalités.

À l’heure actuelle, 41% du dossier app de Magento 2 est couvert pas des test unitaires.

B29UhcHCUAAyB

11h15 / 11h55 – Optimisation Magento Enterprise – Tim Bezhashvyly – 21run.com

B29XasMIAAAFA

Ici Tim a présenté des points d’optimisation concernant le FPC, le module Enterprise_CustomerSegment et le module Enterprise_Reminder.

12h00 / 12h30 – Présentation du projet OpenGento – Nicolas Trossat – Boutik Circus

B29kAz9IQA

Il s’agit de la création d’une association, dans le but de financer la MageConf, mais également d’avoir des lieux/moments d’échanges autour de la conférence et de la plateforme.

Il y aura prochainement, sur le site de la MageConf, un formulaire pour les gens intéressés.

14h00 / 14h40 – Magento et OroCRM: le duo gagnant? – Sylvain Rayé – Diglin

Phot

Présentation générale des fonctionnalités et du back office d’OroCRM.

OroCRM repose sur l’OroPlatform qui représente un socle applicatif (Business Application Platform) basé sur Symfony2, avec une belle batterie de fonctionnalités.

Photo-2014-11-21-1

OroCRM n’est pas la seule application reposant sur ce socle. On retrouvera aussi Akeneo et DiamanteDesk

OroCRM gère le multicanal, permet de créer des commandes qui redescendront dans Magento (Synchronisation bidirectionnelle).

Il en va de même avec les clients. A noter cependant qu’il n’est pas possible de créer de clients depuis OroCRM. Étonnant quand même pour un CRM!
Il s’interface aussi bien avec Magento, ZenDesk, MailChimp et ça risque de s’étendre au fil du temps.

Le module OroCRM Magento Bridge semble intéressant, même en dehors d’OroCRM.
En effet, ce dernier étend l’API native de Magento sur plusieurs types d’entités (Customer, Quote, Order notamment). Ça peut être intéressant d’y jeter un œil.

15h05 / 15h50 – Magento: du début à la fin – Jacques Bodin-Hullin – Monsieur Biz

B2-O9_mIAA

Jacques a pendant cette conférence expliqué les différents outils qu’il utilise au sein de sa société, et comment ces derniers sont interconnectés.
On retiendra principalement les outils suivants, hormis ce que l’on connait déjà avec le couple Vagrant/VirtualBox, Redmine etc…:

Jenkins:
Cet outil d’intégration continue open source permet un interfaçage rapide avec les systèmes de gestion de versions, comme Git.
Ce task runner permet notamment, lors d’un pull sur un dépôt, d’automatiser le lancement de tests fonctionnels, avec CasperJS par exemple.
Il permet également d’automatiser des procédures de déploiements, conjointement utilisé avec Fabric.

Fabric:
Fabric est une librairie Python permettant d’exécuter facilement des commandes SSH, locales ou distantes, sur un ou plusieurs serveurs.

Datadog:
Service de monitoring en SaaS.
Il existe par ailleurs un module Magento développé lors d’un Hackathon: Hackathon_Datadog.

Il semble également intéressant de regarder l »outil MageFlow, afin de gérer la synchronisation de contenus entre les différentes instances d’un projet (dev, staging, production etc…).

Photo-2014-111-21-1

16h00 / 17h00 – Lightning Talk (5 minutes par sujet)

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

B2-eavC

Rapide présentation de Docker, un conteneur d’applications, en alternative au couple Vagrant/VirtualBox.
Docker permet un meilleur découplage et est voué à également être utilisé en production, afin de garantir un écosystème toujours identique, peu importe l’instance utilisée.

Photo-2014-11-21-16-41-15_2890

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

B2-fg62IEAAcBZz (1)

On connait déjà bien Redis, mais il est important de noter qu’il utilise entre 2% et 5% moins de RAM que le buffer automatique de Linux, lorsque le cache et les sessions utilisent le filesystem comme stockage.

Automatiser son workflow front-end avec Gulp – Guirec Lefort – Monsieur Biz

Présentation bréve de Gulp, task/build runner qui fonctionne selon un principe de stream.
Toutes les tâches (concat, min etc…) sont exécutées dans un même stream.

B2-hmRfCAAAaVNz (1)

Categories are wrong! – Tim Bezhashvyly – 21run.com

Sans grande surprise, on apprend que l’index qui se charge de la liaison entre produits/catégories est l’un des plus gourmand.
Tim propose une gestion différente et plus simple, par l’ajout d’un attribut produit, sans plus d’infos concrètes.

Les 42 protips du dev’ Magento – Pierre Martin – Occitech

B2-jVAGIEAEDSPq (1)

Outre les classiques sur l’utilisation de la méthode debug des Varien_Object, pas de load dans les templates etc…, les 2 sites suivants semblent juste mortels, notamment le premier:

Magenticians, avec des news bi-mensuelles super intéressantes!
MageCert, outil de révision pour la/les certifications Magento.

conférence, mageconf, Magento

Laisser un commentaire

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