Retour sur le Forum PHP 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é ! 

Team Forum PHP

COCKTAIL TEMPS-RÉEL POUR L'OLYMPIA - Amélie DUVERNET

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 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.

Retrouvez ses slides ici.  

AB Testing chez M6Web

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.  

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 !

Software management lessons from the 1960's - Larry Garfield

Avec Larry Garfield, on prend un cours d'histoire ! Personne ne devrait concevoir un programme sans avoir lu The Mythicial man month.

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 !

Ses slides sont ici.

SIGNAUX, PROCESS ID ET PHP - Alexandre Balmes

À 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.

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.

LE STREAMING D'API : POURQUOI ? COMMENT ? - Audrey Neveu

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.

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 !

Climbing the Abstract Syntax Tree - James Titcumb

Avec James Titcumb, on tombe dans le technique avec une explication du fonctionnement interne de PHP et de comment PHP interprète notre code.

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 !

DÉVELOPPER PLUS RAPIDEMENT AVEC SYMFONY 4 - Kévin Dunglas

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.

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/

Les Hexagones de La Ruche qui dit oui - Benoît Merlet

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.

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

Process qualité : le cas Symfony - Nicolas Grekas

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 !

Les slides : https://speakerdeck.com/nicolasgrekas/quality-processes-the-case-of-symfony

Ré-écriture de code vieux de 17 ans - Anna Filina

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.

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 :)

Les interfaces - Sébastien LAVENANT

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. 

GraphQL, l'avenir du REST ? - François Zaninotto

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.

Refacthon - Frédéric Bouchery

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 !

Une édition de tous les records

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 !

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 !