Monsieur Biz sponsor et conférencier du Forum PHP 2021
Le Forum PHP 2021 est revenu en physique, nous y étions ! Retrouvez un résumé de ce que nous avons vu.
L’AFUP a réussi l’exploit de relancer les éditions physiques du Forum PHP ! C’est avec une immense joie et aussi beaucoup d’émotion que nous nous sommes retrouvés durant 2 jours. Quel plaisir !
Toute l'équipe de Monsieur Biz était présente sur le stand de Sylius accompagnée de Kévin Bessat, Country Manager France de Sylius. D'ailleurs pour cette édition Maxime était conférencier à propos de Sylius et de son utilisation sans e-ecommerce (et oui !).
Maxime quelques secondes avant son talk sur Sylius sans e-ecommerce
Keynote d’ouverture
C’est avec une émotion palpable que la présidente de l’AFUP Cécile Hamerel ouvre officiellement le Forum PHP 2021 !
Cécile durant la keynote d'ouverture du Forum PHP 2021
Vers la sobriété numérique - François ZANINOTTO
C’est avec plein d’humour et un lexique très contemporain (à la gloire de Jul notamment) que François nous fait un état des lieux du sujet sensible de la pollution engendrée par le numérique. Même si actuellement il ne s’agit pas de la source d’émission de gaz à effet de serre principale, il est important d’agir dès maintenant vu l’augmentation des chiffres. Bien sûr les cryptomonnaies font partie de ces sources polluantes, mais ici n’est pas le sujet.
On apprend que c’est principalement l’utilisation des services qui engendre des gaz à effet de serre et moins les serveurs qui les hébergent. Il va de soi que les terminaux que l’on utilise font aussi partie de celles-ci, il est donc important de conserver les machines le plus longtemps possible et de faire en sorte que les applications restent compatibles dessus. Nous apprenons également que côté client, c’est l’écran qui consomme le plus d’énergie.
François nous à également présenté un outil développé par sa société Marmelab : GreenFrame. Ce dernier permet de mesurer les émissions en CO2 de votre site web et de vous aider à les réduire.
Et dernier conseil pour être écolo, si vous n’avez pas besoin de cette feature :Don’t do it !
Symfony 6 : le choix de l’innovation et de la performance - Nicolas GREKAS
Nicolas nous a fait un tour complet des statistiques des contributions Symfony.
C’était aussi l’occasion pour lui de nous parler de Symfony 6 dont la principale évolution concerne la compatibilité PHP 8 qui implique beaucoup de breaking changes pour lesquels nous allons devoir intervenir sur nos projets. Nous allons pouvoir profiter de la stabilité de Symfony 5.4, ou partir sur Symfony 6 qui, lui, continuera à être mis à jour.
Nicolas a également présenté un petit utilitaire lepatch-type-declarations, présent dans la version 6 du composant symfony/error-handler qui permet d’ajouter automatiquement les types de retour dans le code d’un projet.
Pratique pour facilier la migration vers Symfony 6 !
En résumé, la version 6.0 de Symfony n’est qu’une version “propre” de la version 5.
Transformer une application RAD vers du DDD, pas à pas - Charles DESNEUF
Charles, au travers de sa présentation, nous emmène avec lui dans un retour d’expérience à propos d’une migration d’application utilisant le bundle Symfony EasyAdmin.
Dans un premier temps, il leur a fallu préparer cette migration en deux étapes :
- Des events storming : pour définir avec tout le monde, les nouveaux concepts et cas d’usage.
- La lecture du code : qui a permis de détecter des règles métier dans les annotations ou dans les event handlers doctrine. Mais aussi pour constater que le nommage des nouveaux concepts ne correspond pas à ceux des classes existantes.
Avant de passer au refactoring, une étape importante était de poser des tests fonctionnels et desapproval tests. Ces derniers permettent de comparer le résultat d’une méthode avec le résultat sauvegardé et de confirmer que ce dernier n’a pas changé. Pratique pour tester du code legacy !
Une fois les tests en place, la phase de refactoring du code a pu commencer. Ce qui à la fin a permis de faire correspondre le vocabulaire des concepts métiers avec les classes PHP.
La dernière grosse étape que Charles nous a présentée est la modification de la base de données avec l’utilisation du pattern CQRS qui sépare les opérations d’écriture, des opérations de lecture. Ce qui leur a permis d’avoir les entités métiers en base de données et une entité d’affichage pour les utilisateurs via une vue SQL.
Le dernier conseil de sa présentation est d’entreprendre ce gros travail de refactoring à plusieurs.
Kairoi, et PHP se réconcilie avec les tâches planifiées - Emeric KASBARIAN et Jérémy JAMES
Sous forme d’une reconstitution théâtrale, Emeric et Jérémy, nous rapportent la genèse de la création de leur outil Kairoi en tant que successeur des tâches planifiées via la crontab.
Le serveur Kairoi, écrit en Rust, a pour but de recevoir des messages contenant un tâche à exécuter plus tard, et de notifier le client quand la tâche doit être réalisée.
Bonne nouvelle – en même temps on était au forum PHP, un Client PHP pour Kairoi est disponible.
Durant cette présentation, ils nous ont montré l’utilisation de Kairoi pour réaliser l’expiration des paniers dans la solution e-commerce Sylius.
Guide pratique de lutte contre le “syndrome de l’imposteur” - Marine GANDY
C’est avec une aisance et une fraîcheur qui fait plaisir à voir que Marine nous a parlé d’un sujet que 70% d’entre nous ont déjà vécu au moins une fois dans leur vie.
Le Syndrome de l’Imposteur !
Tout d’abord il est important de noter que ce sujet a été mis en exergue par deux femmes psychologues : Pauline Rose Clance et Suzanne A. Imes qui elles-même, malgré leurs carrières grandioses, sont passées par ce sentiment. En revanche il ne faut pas voir le syndrome de l’imposteur partout ! Il faut faire attention au contexte car l’on peut être parachuté sur un projet qui nous met mal à l’aise, douter de soi en début de carrière ou durant une reconversion, et c’est NORMAL !
Si vous vous sentez dans une situation de l’imposteur, ne restez pas seul(e) avec votre stress, n’hésitez pas à discuter, partager vos ressentis, cela vous aidera à vous soulager de ce poids. N’hésitez pas à travailler sur vos faiblesses, ou encore développer d’autres compétences, afin de vous gratifier de telle ou telle réussite.
Pour finir, il faut accepter que cela existe, mais on parlera plutôt d’expérience de l’imposteur que de “syndrome”, car ce n’est pas une maladie !
Ne jetez plus mon code ! - Xavier GORSE
Chez l’agence web Monsieur Biz, on travaille sans chef de projet : les développeurs sont directement au contact du client pour comprendre son besoin, le formaliser puis le réaliser.
Elao fait de même et nous propose un retour d’expérience sur le sujet. Les problèmes étant notamment du code jeté avant de partir en production, la perte de temps pour aller chercher des informations, et des besoins mal définis.
Pour pallier à tout ça, il y a un certain nombre d’étapes à respecter sur un projet avant une mise en production réussie :
L’expression du besoin : on challenge le client sur ce qu’il souhaite, Xavier évoque la méthode «les 5 pourquoi» pour y parvenir.
Les spécifications : elles doivent être écrites avec le client, avec notre accompagnement, évidemment. Et doivent être archivables et accessibles.
Production et revue de code : toujours continuer à échanger pour être sûr de ce que l’on produit, ensuite la code review et les tests automatisés nous rendent tous responsables.
La recette : il faut tester de son côté mais aussi faire tester le client.
En conclusion, la communication est le nerf de la guerre !
Accessibilité & SEO : et si on relevait le niveau ? - Anne-Laure DE BOISSIEU & Amélie DEFRANCE
Anne-Laure, pour la partie SEO et Amélie, pour la partie accessibilité, nous ont montré que ces deux domaines étaient, au final, intimement liés durant la création d’une application web. Il est important d’anticiper les besoins dès le début du projet, et de permettre aux personnes daltoniennes, malvoyantes, non-voyantes, mais aussi aux robots Google de pouvoir parcourir clairement nos contenus.
Pour cela, oubliez tout d’abord les focus invisibles sur les champs, les statuts à base de couleur (sans texte pour l’expliquer), les boutons mystères avec une icône uniquement, que vous êtes le seul à comprendre.
Il faut également rendre le contenu explorable via lerobot.txt
par exemple, avoir une navigation claire et simple pour l’utilisateur et pour les robots. L’utilisation de la hiérarchisation (h1, h2 etc.), ainsi que desaltpour les images, et lestitlesur vos éléments permettront non seulement aux robots de comprendre votre site mais aussi aux personnes équipées d’un lecteur d’écran de pouvoir naviguer sereinement.
C’était aussi l’occasion pour Anne-Laure de nous parler d’histoires d’horreur SEO, comme par exemple un hébergeur qui a bloqué les crawls du site, ou montré que de nombreuses plateformes de préproduction étaient indexées dans les résultats des moteurs de recherche !
Nous faisons extrêmement attention à ça chez nous, un environnement hors production n’est jamais accessible par une personne non autorisée !
Sous-représentation des femmes en sciences et en informatique : comment y remédier ? - Marion MONNET
Au travers de multiple statistiques, Marion a pu nous prouver que les femmes étaient sous-représentées dans les sciences et que les stéréotypes ont la vie dure !
Même si certaines femmes partent dans un cursus scientifique, la plupart partent en biologie plutôt qu’en mathématiques ou physique. Ces choix sont ancrés dès le plus jeune âge et des études montrent que les filles se sentent moins confiantes dès la primaire sur des sujets mathématiques.
Comment peut-on éviter cela ? Il faut mettre les filles en contact avec les sciences le plus tôt possible, afin qu’elles se sentent en confiance avec ces domaines, donner également une image plus inclusive de l’informatique ! Pour finir, il faut aussi parler de parcours de femmes qui ont réussi dans ce milieu pour « faire rêver », afin de donner envie d’aller dans ces branches.
Synchroniser ses applications plus rapidement avec du low-code - Grégory PLANCHAT
Grégory aime faire parler les applicatifs entre eux. Au début, il pensait que c’était simple, mais… il a eu des problèmes. Du coup il a eu l’idée d’utiliser des ETL, dont le but et de récupérer / transformer / transmettre de la donnée, avec des logs et une gestion des erreurs.
Grégory aime PHP et les outils en Java ne sont pas sont dada. Il existe des packages PHP sur le sujet mais il ne sont pas complets. C’est alors qu’il eût une idée : créer son propre outil.
Créer un middleware, un outil d’ETL en PHP, qui via du YAML, vient générer des scripts PHP pour faire communiquer des applications : Gyroscops! Qui en plus est open source!
Avec PHP 8, le mapping via le composant Expression Language de Symfony et son expertise, il nous propose un arsenal de possibilités :
- Des sources de données (CSV,Sylius, Excel, FTP…)
- Des mappings (Simple Map)
- Des générateurs (Scripts, Docker, Serverless)
- Des loggers (fichiers de logs, ELK, Gelf…)
- Reprise des données en erreur
- Et encore plein d’autres choses !
On a même eu un aperçu de la future version avec de jolis drag and drop ! Nous allons tester tout ça chez Monsieur Biz car il y a un connecteur Sylius 🥰.
Sylius sans e-commerce, pourquoi et comment ? - Maxime HURAN
Monsieur Biz participait au forum en tant que sponsor et conférencier et c’estqui nous a montré pourquoi et comment utiliser Sylius sans e-commerce.
L’avantage de Sylius est qu’il est découpé en bundles et que plusieurs de ceux-ci ne concernent pas directement le e-commerce. Gestion des canaux, gestion de thèmes, une interface d’administration personnalisable, gestion des utilisateurs etc. Sylius est donc aussi un couteau suisse pour vos applications web classiques.
Pour utiliser Sylius sans e-commerce il y a deux méthodes :
- Utiliser Monofony, qui est un framework qui réunit des bundles Sylius, sans l’installer complètement.
- Utiliser le plugin No Commerce, qui s’ajoute à Sylius pour venir masquer la partie e-commerce.
Sylius peut être accompagné de plusieurs plugins qui complètent les fonctionnalités de celui-ci. Gestion des pages CMS via un éditeur riche ou encore de homepage, en passant par l’ajout de messages dynamiques sur toutes vos pages, les plugins Sylius sont divers et variés et ne concernent pas forcément le e-commerce.
La seconde partie de la conférence est très dense et montre comment gérer ses propres entités, comment y ajouter les affichages en backoffice et en front office. En (re)parcourant les slides du talks, vous connaitrez les bases de Sylius !
(186 slides tout de même !)
Faites confiance aux développeurs.euses de votre équipe : voyez plus loin que les fonctionnalités - Sofia LESCANO
Pour venir donner des responsabilités aux membres de l’équipe et pour augmenter la productivité, la qualité et la maintenabilité, Sofia est venue nous livrer son secret : les tech meeting toutes les deux semaines.
Cette réunion technique d’une heure, dont les sujets sont proposés et rédigés en amont, est un lieu de discussion technique autour du projet pour l’améliorer sans pour autant parler de nouvelle fonctionnalité.
Les sujets qui sont abordés durant ce point sont traités de plusieurs manières :
- Archivé : si le sujet ne répond pas aux critères d’acceptance.
- En POC et discussions : si le sujet est très important ou pas suffisamment clair.
- Rédaction d’une US et ajout dans un sprint : pour les sujets définis et clairs.
Le retour de l’équipe suite à la mise en place de ce point est positif : gain en confort (alerting pertinent), stabilité de l’application, amélioration technique du projet, meilleur état d’esprit (sentiment d’appartenance).
Les sujets peuvent être proposés par tout le monde, les juniors comme les seniors, la chefferie de projets, etc. Toute l’équipe est concernée sans exception !
Sofia nous a aussi parlé de plusieurs techniques pour faciliter la qualité sur le projet, comme par exemple lemob programming(programmation en groupe) que nous connaissons bien sous sa forme simple qu’est lepair programming. Les tickets qui peuvent être traités en mob sont marqués afin que les développeurs puissent s’organiser plus facilement.
Il paraît qu’un sujet revient souvent : l’alerting ! Ça ne nous étonne pas et c’est quelque chose que nous sommes en train de mettre en place de manière industrielle chez tous nos clients.
Fiber : la porte ouverte sur l’asynchrone - Benoit VIGUIER
La version 8.1 de PHP permet de profiter de la nouvelle fonctionnalité Fiber, qui permet de gérer facilement de l’asynchrone de façon moins intrusive dans le code.
Les Fibers permettent de créer des fonctions qui peuvent être interrompues et imbricables les unes dans les autres.
Benoît a présenté un exemple de ping-pong avec l’utilisation de Fiber via son micro-framework Slip, qui permet d’appeler la fonctionsleep
de façon non intrusive.
Qualité front, pourquoi c’est aussi le travail du dev back ! - Martin SUPIOT & Elie SLOÏM
On pensait avoir affaire à un duo d’humoristes tant la complicité entre Martin et Elie est forte ! C’est avec plein d’humour qu’ils nous ont parlé des bonnes pratiques du web, comment simplifier la vie de l’utilisateur et pourquoi c’est notre travail !
Pour cela, il est important de parler d’Opquast, cette certification qui vise à nous sensibiliser à ces bonnes pratiques. On pensera notamment à donner des messages d’erreur clairs sur les formulaires, proposer un nom de fichier téléchargeable cohérent et non un simpleinvoice.pdfpar exemple.
D’autant plus que ces pratiques améliorent également l’accessibilité de votre application !
Les règles sont nombreuses, on pourrait aussi préciser que chaque demande d’un utilisateur doit lancer un accusé de réception, de permettre les alias dans les champs email (avec le caractère+
), de garantir la sécurité des mots de passes de vos utilisateurs, etc.
Les domaines sont nombreux et le principe fondamental est de comprendre les internautes, de se mettre à la place de l’utilisateur pendant nos développements et surtout d’avoir de l’empathie.
Comment sauver la planète en ne faisant rien - Hélène MAITRE-MARCHOIS
La présentation commence par le constat de l’augmentation des températures depuis 1900 par une succession de couleurs, sans suprise le rouge domine sur les dernières années.
Pour rester sous la barre symbolique des 2 degrés d’augmentation, il faudrait passer de 12 tonnes à 2 tonnes de CO2 par an et par habitant !
Pour la partie numérique, on peut constater que les vidéos de chat polluent plus que les trajets en avion. Mais ce qui consomme le plus dans le numérique c’est la fabrication des nouveaux terminaux et surtout l’extraction des matériaux qui les composent.
Quelques chiffres pour se rendre compte de l’ampleur :
- Il faut savoir que 80 % des composants des terminaux ne peuvent pas être recyclés et que le recyclage consiste à envoyer nos vieux terminaux dans des pays comme le Ghana sans aucun traitement.
- Un smartphone fait 4 fois le tour de la terre avant d’arriver au consommateur final.
Pour réduire notre impact, il est nécessaire d’augmenter la durée de vie de nos terminaux (ce que nous a dit également François lors de sa conférence sur la sobriété numérique).
En tant que développeur, il faut éviter l’obésiciel des devices car l’application demande plus de RAM / de CPU / de place.
Pour se faire, il faut appliquer le principe de la low-tech en répondant aux trois principes : Utile - Accessible - Durable. Et se poser les bonnes questions, par exemple : est-ce que la fonctionnalité est vraiment utile ?
Idéalement, il faudrait diviser par 6 le poids moyen des pages web en passant de 3 Mo à 500 Ko.
Chez Monsieur Biz nous essayons de travailler sur la vitesse de chargement de nos pages justement en réduisant l’usage sur le serveur. Ainsi nous pouvons faire tenir une application sur de plus petits serveurs (ou sur moins de serveurs !).
Typage automatique de code PHP - Damien SEGUY
Ce n’est pas d’éléphpants dont nous a parlé Damien durant ce forum, mais plutôt du typage proposé par PHP 8. Sa mise en place implique beaucoup de changements dans notre codes et donc pourquoi ne pas essayer de l’automatiser ?
Au travers de plusieurs méthodes, à différents niveaux, Damien nous à montré que c’était parfois très simple d’y parvenir, mais aussi parfois beaucoup plus compliqué !
Parfois les retours de fonctions, les arguments déclarés et leurs usages permettent de deviner le typage et de l’affecter automatiquement. En revanche comment trouver le typage à l’intérieur d’un tableau rempli avecarray_fill
?
Dans tous les cas, une fois votre typage effectué une première fois, vous pourrez lancer votre CI et voir tout d’abord si elle passe correctement. Ensuite vous pourrez effectuer une seconde itération afin de voir si les typages ajoutés ne vous permettent pas d’en deviner de nouveaux.
Les design patterns racontés aux enfants - Vincent LAURIER
Vincent nous a raconté l’histoire de Solid le petit éléphant, Perle l’otarie et Torp le tigre !
A travers ces personnages de cirque il nous a confié comment il a pu présenter les designs patterns dans un ouvrage pour enfants, et pas que finalement !
Il nous explique les défis sur lesquels il est tombé pour ce travail personnel immense :
- L’exploration ! Il faut se lancer, fouiller, comprendre son sujet.
- Savoir s’entourer ! La collaboration est un point important bien sûr mais il faut aussi savoir parler du projet, discuter autour de soi, montrer l’avancée du projet…
- Planifier ! Un tel projet personnel prend du temps, beaucoup de temps. Pour Vincent il fallait que son livre sorte avant ses 40 ans. Il faut être au clair sur ce qu’on veut faire et surtout on apprend à mieux se connaître soi-même. Il a tenu la deadline !
- Produire ! Et attention au mieux qui est l’ennemi du bien. On veut toujours faire mieux, mais le temps file… Il faut avancer.
Et surtout il a fallu se convaincre que l’idée était réalisable ! On se dit souvent « je n’y arriverais jamais ».
On se motive !
Finalement Vincent n’a pas vraiment parlé des Design Patterns mais surtout de son aventure humaine et personnelle qu’il a vécue.
Son aventure ne serait-elle pas celle de tous ceux qui se lancent dans un nouveau projet web ?
Suivez les conseils de Vincent et ne perdez pas courage, la route est longue !
WorkAdventure de la genèse à aujourd’hui : Retour d’expérience sur 1 an d’univers virtuels - David NÉGRIER
C’est avec des étoiles plein les yeux que David est revenu sur un outil que l’on utilise tous les jours chez Monsieur Biz : Workadventure.
Retour sur des soirées hackathons durant le confinement qui ont permis la création de la genèse de Workadventure. Le principe de base : reproduire dans un univers 2D, un endroit tel qu’un bureau, afin de retrouver des gens et communiquer avec eux comme on le ferait en réel, en s’approchant l’un de l’autre.
Le moteur graphique choisi fût tout d’abord PixiJs, mais aucun éditeur de maps n’était compatible avec celui-ci. C’est alors que Phaser fut choisi, accompagné de l’éditeur de map Tiled. Pour la communication entre personnes, le protocole Web RTC est utilisé. Pour les plus grands rassemblements (plus de 4 personnes) ils font appel à Jitsi afin d’éviter d’utiliser trop le réseau et ainsi simplifier les connexions entre les clients.
Entre serveurs STUN, TURN, SFW, les obstacles ont été nombreux et le nombre d’utilisateurs grandissant a également contribué à l’évolution de l’outil. Comment réagiriez-vous si on vous annonçait que vous deviez gérer un Forum PHP de 500 personnes ? Ou un événement en Allemagne regroupant 20 000 personnes ? C’est ce genre de challenges qui ont été relevés avec brio chez WorkAdventure !
Nous avons pu discuter longuement avec David sur notre usage de WorkAdventure (d’ailleurs il nous cite dans sa conférence !). Nous sommes sur une version de staging depuis un moment maintenant et essayons de nouvelles choses aussi souvent que possible. D’ailleurs nous repartons du Forum PHP avec beaucoup d’idées !
Slideshow Karaoke et autres surprises
Le but du Slideshow Karaoké est simple : vous connaissez votre sujet, mais vous ne connaissez pas vos slides !
2 minutes, 6 slides, donc 20 secondes par slide. Fous rires garantis !
Cette année nous avons eu droit à des animaux troooop mignons, Kaamelot, La cité de la peur, Disney et des grenouilles choupis !
Chez Monsieur Biz c’estqui s’y est collé cette année. 😛
Jacques qui se retrouve face à ses slides !
Keynote de clôture
Après deux jours intenses, c’est le moment de se dire au revoir. Mais les rendez-vous sont pris pour 2022 !
L’AFUP Day 2022 aura lieu dans une seule ville et c’est à Lille que ça se déroulera ! Et, GROSSE SURPRISE, on nous annonce déjà le Forum PHP 2022 ! Qui se tiendra à… Disneyland Paris !