Pour la 4ème année consécutive, des membres de la team Blackbird se sont rendus au week-end de l’association Opengento, organisé cette fois par l’agence Adexos de Béthune.
Opengento organise tous les ans des événements pour les développeur·se·s Magento et aide à créer une communauté française.
Kévin (pour sa 2ème année), Clément, Émilie et Maïa ont donc pris le TGV pour Lille Vendredi 15 Novembre.
Sur la route, on configure nos environnements locaux, on installe les frameworks dont tout le monde parle en ce moment et on fait une pause frites et gaufres avant de continuer vers Béthune.
Adexos a préparé une superbe soirée pour l’inauguration de leurs nouveaux locaux !
On rencontre les autres membres de l’association dans une ambiance décontractée, on découvre quelques projets de l’agence et on participe même à un escape game au milieu de leurs bureaux !
On les remercie chaleureusement pour la super organisation du week-end :)
On est finalement conduits au parc d’Olhain où aura lieu le hackathon…
Le lendemain, les développeurs et développeuses se lèvent avec plus ou moins de mal et on partage nos idées de sujets pour le week-end :
- Découverte de Sylius et de Monofony
- Plugin de recherche Sylius https://github.com/monsieurbiz/SyliusSearchPlugin
- Gatsby devant Sylius https://github.com/opengento/gatsbylius
- Web OAuth (YubiKey)
- Transformation de fichiers .phtml en Underscore.js
- React admin sur M2
- PWA ? Kezako ?
- Tests unitaires de modules M2
- Checkout M2
- Bundle sur Sylius
On retrouve beaucoup de thématiques liées au e-commerce, mais assez peu de Magento pour l’association qui lui est dédiée !
Émilie et Kévin se tournent vers l’introduction sur Sylius et le développement d’un plugin de recherche avec ElasticSearch.
Clément choisit la transpilation de templates php en underscore JS avec Paul Masson de Wyomind, nos voisins lorrains.
Maïa embarque sur la création de « Gatsbylius, l’e-commerce le plus rapide au monde », utilisant les frameworks Sylius (e-commerce) et Gatbsy (générateur de sites statiques basé sur React).
L’ElasticSearch pour Sylius
Dans le groupe de Kévin et Emilie, Maxime Huran de Monsieur Biz a fait une introduction de Sylius, un framework e-commerce basé sur Symfony. Ils continuent par un petite présentation de Monofony, une version de Sylius sans la couche e-commerce dans le but de pouvoir facilement créer de nouvelles entités et des grilles, dans un back-office déjà existant..
Ensuite, chacun installe son environnement Sylius et Elasticsearch pour commencer à bidouiller et découvrir ce framework. En fin de journée ils commencent à développer de nouvelles fonctionnalités sur le plugin de recherche qu’avait commencé Maxime : https://github.com/monsieurbiz/SyliusSearchPlugin. Ils ajoutent notamment un système de pagination et d'autocomplete. Le but est également d’intégrer les pages catégories avec Elasticsearch pour ne plus avoir de requêtes Mysql inutiles en front et utiliser à fond la puissance de ce moteur de recherche ! Une fois ces fonctionnalités finies, le but est de rendre le plugin officiel et approuvé par Sylius.
Le Champollion du numérique
Pourquoi transpiler des templates phtml en JS ? Déjà pourquoi pas ! Et ensuite, Underscore.js permet entre autres de faire du templating directement coté client en fournissant un objet JSON contenant les informations.
L’objectif premier était de pouvoir fournir tous les contenus au chargement de la page et de réaliser la construction de cette dernière directement dans le navigateur permettant notamment d’éviter de multiples calls AJAX. Un seconde utilité envisageable est de pouvoir mettre en cache le fichier de templating augmentant les temps de réponse serveur. Afin de réaliser cette POC, nous avons utilisé un parseur php générant un AST (Abstract Syntax Tree) interprété ensuite afin de reconstruire une structure de code similaire en JS. Au cours du WE, nous avons pu transpiler les structures classiques de programmation (boucles et conditions), les affectations et opérateurs, les tableaux multidimensionnels et quelques fonctions comme str_replace() et strtotime().
Le magnifique !
Basé sur React, Gatsbylius s’affiche effectivement très rapidement. Bien que l’équipe construise un plugin Sylius inexistant, il existe déjà beaucoup de plugins pour brancher Gatsby sur votre CMS préféré, Magento y compris !
Voir le projet sur le site de l’association
Le chocolat, la luge et la bière
L’ambiance est bonne, les développeurs et développeuses carburent au chocolat chaud comme à la bière.
On se permet une pause « Luge d’été » dans la forêt du parc.
On découvre les projets des autres, le peer-programming et la création de PWA.
Le soir, la raclette pour 30 personnes tant attendue rempli nos estomacs.
Puis on se remet au turbin.
En fin de soirée,
- la recherche a une pagination et une autocomplétion sympathique,
- la transpilation a une POC raisonnable,
- et Gatsbylius affiche une liste de catégories et des pages produits.
Après quelques parties de ping-pong (dont Kévin sort très largement gagnant), on souhaite une bonne nuit aux autres développeurs que l’on entendra encore tôt le matin.
Au petit-déjeuner on discute encore de ce que l’on a appris, de ce qu’il reste à faire sur les projets commencés, et de la prochaine édition !
On dit au-revoir aux autres et on se dirige vers nos 4 trains pour rentrer :)