Retour sur le Forum PHP 2017
Publié le 03 novembre 2017
La semaine dernière, une partie de notre équipe s’est rendue au Marriot Rive Gauche pour assister à une nouvelle édition du Forum PHP où nous étions sponsors Argent et speaker ! Cet événement a fait salle comble : plus de 650 personnes avaient répondu présent pour 2 jours de talks 100% PHP. Vous n’avez pas pu y assister ? Nous vous avons fait un récap des talks auxquels nous avons assisté !
Ce talk avait pour sujet les problématiques de réservation et de consommation des billets en temps réel sur le site Digitick pour la salle de l’Olympia. Amélie Duvernet nous a fait une présentation du système en place pour la gestion des données et le compostage desdits billets avec une vidéo démo de leur interface, permettant de suivre l’évolution des ventes en temps réel.
Le cocktail NodeJS / Redis / PHP / Websocket / RMQ... de l'Olympia #forumphp pic.twitter.com/E2f7nYltaU
— Florian Tissot (@FloTissot) 26 octobre 2017
Le prestige de la salle de l’Olympia exige un système qui tourne sans faille avec deux salles à gérer. Pour la sécurité, des token, des systèmes d’enqueue des requêtes ou encore une génération de hash des données pour les vérifier ont été mis en place.
Est-ce une trop grosse architecture pour leur besoin ? Leur système n’est en effet utilisé qu’en interne et n’est pas exposé aux clients.
En résumé :
- Scan billet -> rabbit -> node -> salle de spectacle -> redis.
- Scan billet -> redis
- Utilisation de Node + socket.io pour créer un système pubsub afin de tenir l'utilisateur informé sans rafraîchissement.
J'avais eu le plaisir d’assister au super talk de Olivier Mansour a propos de leur utilisation de cassandra et de la gestion de la charge pour tenir les 4 millions d'utilisation quotidienne, je vous invite à revoir ce talk.
Cette fois ci, on aborde le testing, avec la validation d'une idée par échantillonnage. L'idée principale de ce talk, c'est d'élaborer des variations d'un comportement pour vérifier la cohérence de son comportement.
La salle Johnson est archipleine pour “AB testing chez M6 Web” au #forumphp au @MHrivegauche ! pic.twitter.com/UyA5rKbb9n
— AFUP (@afup) 26 octobre 2017
Les exemples mis en avant sont :
- La recommandation d'un programme d'après 3 méthodes : la proposition manuelle (réalisée par M6), à partir de la consommation de l'utilisateur, et à partir de la consommation de tous les utilisateurs. Avant de mettre définitivement en ligne le système, M6 a lancé en production pour une période donnée, et évalué les métriques pour constater l'efficacité de chaque méthode.
- Autre application de la méthode AB, sur l'emailing. Avant de modifier la manière de communiquer, on étudie le retour sur un échantillon d'utilisateurs et on déploie progressivement. On parle alors de canary testing (en référence à l'oiseau dans les mines pour prévenir du gaz).
- Dernier exemple d’utilisation, l’application de la méthode pour vérifier une amélioration des performances, entre 2 versions / architectures. M6 utilise alors la notion de production cachée pour tester sur un groupe restreint d'utilisateurs.
En résumé, on est ici sur une grosse machine de guerre, il faut du trafic, il faut le besoin, et énormément de budget ! Le sujet fut extrêmement intéressant mais pas à la portée de tous, je vous invite à consulter ses slides !
Avec Larry Garfield, on prend un cours d'histoire ! Personne ne devrait concevoir un programme sans avoir lu The Mythicial man month.
What’s your excuse ? -#testing #ForumPHP - cool talk by the way @Crell pic.twitter.com/PSef8pzLtu
— Olivier Mansour (@omansour) 26 octobre 2017
Le talk complet est un balayage sur les points les plus croustillants du livre. Même s’il a été écrit il y a plus de 40 ans, tous les points dont le livre fait état sont encore d'actualité. On apprend par exemple que l’intégration continue et les tests automatisés étaient déjà d’actualité ! Et qu’à l’époque, estimer un programme était aussi complexe qu’aujourd’hui. Une réédition a été faite en 1995, je vous invite à le consulter !
À travers le live coding, Alexandre Balmes nous démontre quelques bonnes pratiques comme utiliser les fichiers lock (fichier de process id avec Symfony) pour vérifier qu'un programme est accessible.
#ForumPHP @afup 2017 Les signaux en PHP avec @pockystar pic.twitter.com/ed8yaGoTRJ
— Loïc Caillieux (@loic_emagma) 26 octobre 2017
Son talk est une véritable démonstration d'une gestion propre d'une application à travers les signaux et pid, malgré quelques approximations à propos du signal kill. Il faut penser API à travers le CLI.
Avec Audrey, on reprend ensemble les pour et contre des systèmes de "streaming d'API" connus. C’est une bonne entrée en matière lorsqu'on a besoin de faire un choix ou de s'y retrouver.
Maintenant au #forumphp , @Audrey_Neveu nous parle d'api en temps reel pic.twitter.com/tyAFLJHXw3
— Muriel (@metalmumu) 26 octobre 2017
Son talk aborde une nouveauté : le websub ainsi que le server sent event en passant par une comparaison avec web-socket. Ce fut une jolie présentation j'en ressors avec l'envie de tester !
Avec James Titcumb, on tombe dans le technique avec une explication du fonctionnement interne de PHP et de comment PHP interprète notre code.
Résumé du talk : Climbing the abstract syntax tree. #forumphp pic.twitter.com/QhnrsHIScM
— Julien Hochgenug (@jhochgenug) 26 octobre 2017
James Titcumb nous fait une véritable explication et représentation de l'AST PHP7 et des bénéfices qu'il amène. Comprendre son fonctionnement amène une meilleure compréhension de comment est interprété notre code ! Je pense que tout développeur un peu curieux devrait se pencher sur le sujet !
Kévin nous a fait assister à une course contre la montre pour démontrer toutes les nouveautés apportées par Symfony 4 et “Flex” (le plugin Composer qui l’accompagne) dans le temps imparti. Il nous prouve qu’il est possible de réaliser un véritable projet en production sur le temps d’un week-end grâce aux simplifications qu’amène la nouvelle version de Symfony.
Salle comble pour la présentation des nouveautés de @symfony 4 par @dunglas au #forumphp pic.twitter.com/NGvpzpyALV
— Perussel Nicolas (@mamoot64) 26 octobre 2017
Ceci dit, Symfony dans sa version 4.0 n’est pas une LTS, préférez donc débuter un projet avec symfony 3.4 en attendant la sortie de la version 4.1 de Symfony. D’autant plus que la politique de migration continue du framework vous permettra de faire la mise à jour sans souci, à partir du moment où vous éliminez les dépréciations au fur et à mesure.
Retrouvez ses slides : https://dunglas.fr/2017/10/symfony-4-run-through-forum-php-2017/
La Ruche Qui Dit Oui jouit de 6 ans d'existence et est présent sur 9 pays et dénombre 30 000 commandes / semaines.
Rex sur la mise en place de l’architecture hexagonale a la ruche qui dit oui @trompouet @afup #ForumPHP pic.twitter.com/r5D2415bQO
— AFUP Lyon (@AFUP_lyon) 27 octobre 2017
Benoît Merlet nous explique à travers son talk la manière de coder de son équipe ainsi que sa répartition. Ils sont partis du constat que si vous n'avez pas au moins 5 personnes dédiées à l'OPS et au moins 3 dev pour le tooling, vous n'êtes pas prêt(e) pour les micro-services.
Ils ont fait le choix de s’orienter vers une architecture hexagonale très rapidement, après avoir testé la création d’un seul micro-service. L’approche micro-services est conservé : les périmètres métiers sont bien définis et organisés en sous-répertoires, formant un hexagone, dans le projet. Une nomenclature rendant le tout plus clair pour les newcomers a été choisie. Les hexagones communiquent entre eux grâce à des événements. Enfin le métier est abstrait de l’implémentation technique. Bref que du bon ! Ça donne envie d’adopter une telle architecture ! On peut se demander toutefois quels sont les inconvénients.
Retrouvez ses slides : https://speakerdeck.com/trompette/les-hexagones-de-la-ruche-qui-dit-oui
Au cours de son talk, Nicolas nous a appris comment industrialiser au maximum le cycle de développement et de livraison d’une application. Au programme : revue, intégration et déploiement continus.
De la code review jusqu’aux releases, en passant par la stratégie de maintenance à long terme, Nicolas maîtrise son sujet et fournit une mine d’informations qui permettront de tirer la qualité de nos projets privés comme Open Source vers le haut. L'exemple retenu - Symfony - permet d’en savoir plus sur les arcanes de de la publication de l’un des frameworks les plus utilisés au monde, ce qui ne gâche rien !
The #Symfony quality and release process by @nicolasgrekas at #ForumPHP pic.twitter.com/S2raVqXTGa
— Kévin Dunglas (@dunglas) 27 octobre 2017
Ce qu'il faut retenir du talk d’Anna Filina, c'est que peu importe l'état de votre code, il n’est pas nécessaire de tout réécrire. Il est recommandé de faire une évolution progressive, que ce soit au sein de la même de base code ou d’un nouveau projet.
@afilina commence sa conférence sur la réécriture des vieux codes #forumphp @afup @afup_hdf pic.twitter.com/c11Zgtl20X
— Gaël CRISPYN (@gawel1) 27 octobre 2017
Un code ancien peut générer son lot de surprises mais il peut être couvert par les jeux de tests. D'ailleurs en parlant de tests, n'essayez pas d'utiliser des données propres à votre compréhension mais utilisez un jeu de données réelles (anonymisées), vous limiterez grandement les erreurs liées à l'utilisation de votre outil par le client. Ne pensez pas que votre nouveau code est mieux, il sera legacy dans 5 ans : mettez-le régulièrement à jour. En revanche, si pour ce même code vous vous appliquez à suivre les bonnes pratiques, vous pérennisez votre code bien au-delà de 5 ans. Ce fut un talk qui me renvoya à mes début dans le PHP, j'invite à aller voir ses slides :)
Sébastien Lavenant a présenté un sujet parfait pour ceux qui veulent découvrir à quoi sert une interface en PHP, comment l'utiliser et ce qu'elle apporte. Sa conférence était un must know pour ceux qui débutent le PHP et ou qui veulent comprendre comment fonctionnent les Collections / ArrayCollection de Doctrine.
« Les interfaces, l’adn de votre application » par @seblavenant @afup #forumPHP pic.twitter.com/MwXyyPZZCf
— AFUP Lyon (@AFUP_lyon) 27 octobre 2017
C'est certain, le mobile et l’API ce n’est pas le futur, c’est maintenant. François Zaninotto nous démontre que REST commence à s’essouffler et peut se montrer un peu gourmand en requêtes dans un contexte mobile, ou le minimum d’échanges prime.
GraphQL serait son digne successeur, et nous avons le droit à une belle démonstration pleine d’humour. Le plus gros point négatif reste encore la mise en cache des différentes requêtes. Il existe quelques parades mais malgré tout, il semblerait que ce soit encore un peu jeune pour fournir des API publiques, mais assez prometteur pour le prendre en considération pour des projets dont vous avez le contrôle des appels.
Si vous avez un besoin, ou êtes curieux d’utiliser GraphQL, sachez que API Platform le prend en charge sur master et bientôt dans sa version 2.2.
And you know what? @ApiPlatform master supports #GraphQL (and has GraphiQL). Your server in 1 PHP class #forumPHP /cc @francoisz pic.twitter.com/Lh1zM3JP1q
— Kévin Dunglas (@dunglas) 27 octobre 2017
Frédéric, de Figaro-CCMBenchmark, nous a présenté un exercice qu’il réalise toutes les semaines avec son équipe. Ils choisissent un morceau de code, le projettent et se donnent comme objectif de le “refactorer” en 30 minutes tous ensemble. Il nous a proposé de faire la même chose pour la conférence. Une conférence plutôt originale donc ! Les règles sont simples : on ne corrige pas les bugs, on ne touche pas aux autres fichiers.
Cette conférence m’a permis de constater qu’en 30 minutes, il est possible d’apprendre de nouvelles bonnes pratiques et de donner l’opportunité de débattre sainement de points techniques. Une bonne idée, qu’on aimerait voir dans toutes les équipes !
Un énorme merci et bravo à l'équipe de bénévoles de l'AFUP pour l'organisation de cette édition qui a attiré plus de 650 personnes ! Votre travail a été remarquable !
Merci aux bénévoles pour ce #ForumPHP remarquable ! ❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ pic.twitter.com/fOhT23QkhX
— Olivier Mansour (@omansour) 27 octobre 2017
N'oubliez pas qu'une antenne existe dans la région Hauts de France ! Un prochain apéro PHP sera annoncé d'ici quelques jours, restez connectés !