Forum PHP 2017

Petit résumé des conférences auxquelles j’ai pu assister dans le cadre du Forum PHP 2017 à Paris le 26 Octobre dernier.


1 > Cocktail temps réel pour l’Olympia

par Amélie DUVERNET

Présentation d’une stack technique pour la mise en place d’une application dédiée à la gestion des sièges de l’Olympia.
L’accent a été mis avant tout sur le fait de gérer le temps réel : lorsque les billets sont scannés, via une douchette, on voit le plan des sièges se remplir progressivement sous nos yeux.

  • PHP : pour la gestion de la sécurité et du back
  • redis : bdd no sql
  • RabbitMQ : gestion des notifications basée sur le protocole AMQP
  • NodeJS : daemon qui tourne en tâche de fond et qui écoute RabbitMQ
  • socket.io : web socket avec NodesJS pour le temps réel
  • AngularJS : pour un front dynamique

2 > AB testing chez M6 Web

par Nastasia SABY & Fabien de Saint PERN

L’AB testing est une pratique issue du marketing qui vise à évaluer les réactions d’une population donnée (on parle alors de panel) vis à vis des modifications apportées à un produit particulier.
On peut par exemple imaginer une entreprise qui vend de la lessive à ses clients. Elle décide de créer une évolution de son produit. Sa question est alors de savoir si effectivement l’évolution de son produit est appréciée ou non des consommateurs.

Il ne suffit pas d’avoir une bonne idée : il faut prouver que l’idée est bonne.

Au sein de M6 Replay, ils utilisent ce concept afin de tester l’approbation des nouvelles évolutions et features apportées à la plateforme. Il est ainsi possible de mettre en place :

  • un AB test : deux versions de l’API.
  • un ABC test : trois versions de l’API.
  • un AABC test : trois versions de l’API, mais on fait croire au pannel qu’il y en as quatre.

Dans un AB test, si la version B de la plateforme embarque une modification qui risque potentiellement de solliciter de manière accrue le serveur, on parle alors de canary testing.

canary testing

Mais oui, vous savez le canari que les mineurs amenaient avec eux dans la mine pour prévenir les coups de grisou.
En gros, on déploie la feature auprès d’un panel réduit d’internautes et si le serveur ne tient pas la charge c’est que c’est trop gourmand en ressources et pas assez optimisé.

Ok, mais concrètement comment ça se passe ? Comment on le met en place ? Comment on exploite les résultats ? Malheureusement les intervenants ne se sont pas attardés sur ce sujet :(

Je sais juste qu’ils rapatrient tous leurs résultats de test vers une plateforme big-data. J’ai ainsi pu glaner quelques informations sur leur stack à la volée :

  • cassandra
  • Hadoop
  • HDFS
  • Hive

Pour aller plus loin :


3 > Software Management Lessons From The 1960’s

par Larry GARFIELD

Dans la série “ces vieux concepts toujours d’actualité qui nous font bien comprendre que l’on a rien inventé de nouveau”, cette conférence était bien sympa.
“Le Mythe du mois-homme” ou “The Mythical Man-Month: Essays on Software Engineering” est un livre de Frederick BROOKS dont la première édition remonte à 1975.
L’auteur nous démontre la différence entre la production industrielle et le génie logiciel, en démolissant méthodiquement les mesures jours/hommes et mois/hommes, ainsi que toutes les pratiques qui en découlent.

Le Mythe du mois-homme

S’il faut 30 jours/hommes pour un projet, cela ne veut pas dire qu’il faut 30 hommes pour finir le projet en 1 jour.

L’intervenant reprend les grands concepts du livre et tente des les appliquer à notre époque et nos métiers quotidiens. Résultat : rien n’a changé.
Le livre n’en ressort que plus juste et correct dans sa vision à long terme.

La problématique reprise de projet

Pour aller plus loin :


4 > L’art subtil du nommage

par Julien JANVIER

Je m’étais pas mal intéressé à ce sujet à travers plusieurs articles. On y exposait souvent une vision extrémiste qui prônait le fait de ne surtout pas utiliser de doc, en se basant sur le principe du juste nommage, celui-ci devant répondre à toutes les problématiques inhérentes au besoin d’information sur le code.

Après avoir balayé les bases évidentes du nommage (que je ne listerai pas ici), l’intervenant nous livre quelques idées intéressantes :

  • Ne cherchez pas à nommer. Oui je sais c’est bizarre, mais somme toute logique. On nomme un chien, un enfant, un produit, … En programmation on décrit plus que l’on ne nomme. Que fait ma classe ? A quoi sert-elle ? Quelle est sa responsabilité ? etc …
  • Bien souvent on a tendance à se persuader que l’on a créé quelque chose de révolutionnaire qui fait plein de choses ultra complexe : en fait on vient juste de créer une UserFactory. Il faut rester simple et humble.
  • Ne cherchez pas à décrire ce qui n’existe pas. Si vous bloquez sur un nom, posez vous la question de savoir quelle est la responsabilité et l’utilité de votre classe, méthode ou variable. Bien souvent l’erreur de conception peut être révélée lors du nommage.

5 > Le streaming d’API : Pourquoi ? Comment ?

par Audrey NEVEU

Conférence assez complète, où l’intervenante insiste dans un premier temps sur l’importance de streamer nos API au lieu d’utiliser une architecture REST classique. L’idée de base ici part de ce postulat : “Plutôt que de demander en permanence au serveur si il y a eu du changement sur certaines ressources, pourquoi ce ne serait pas ce dernier qui préviendrait les utilisateurs du changement ?”.

On va donc parcourir plusieurs solutions pour mettre en place cette idée.

  • Le WebHook : c’est un concept non normé (pas de spec, pas de doc centrale). Pour l’appréhender rapidement le plus simple est d’utiliser l’API de github.
  • Le PubSub : il s’agit d’un protocole, donc plus cadré, basé sur le publish / subscribe. Il introduit la notion de Hub qui va relayer l’information :
    Publisher => Hub => Subscriber.
  • Le Web-Socket : là on passe sur de la push technologies bi-directionnelle. Il dispose d’un protocole dédié RFC-6455 et permet de traiter le texte et le binaire.
  • Le Server-Sent Event : push technologies mono-directionnelle (serveur => client). Passe par le protocole HTTP et ne traite que le texte. A ce jour il reste non supporté par IE :(

Pour aller plus loin :


6 > Climbing the Abstract Syntax Tree

par James TITCUMB

Là on décortique des algos très simples en php pour rentrer dans leurs interprétation par le compilateur.
Le but idéal serait de comprendre comment optimiser les algo php pour faciliter le travail du compilateur et gagner en performances ! Mais c’est assez complexe … En vérité il s’agit plus d’une appréhension de l’AST : l’arbre syntaxique abstrait mis en place dans php 7.

Si l’on schématise la manière dont php fonctionne, voici ce que l’on obtient : Code PHP => Lexer + Parser => Compiler => Opcache => Execution.
l’AST est une représentation de données utilisée dans la phase de compilation.

Ce qu’il faut retenir :

Pour aller plus loin :


7 > Développeur et protection de la vie privée

par Erwan RICHARD

C’est un vaste sujet sociétal, qui se prête plus à l’exercice du débat plutôt qu’à celui de la conférence. Le but de l’intervenant n’est pas de nous guider vers un process ou une éthique mais plutôt de nous interpeller autours de cette question : “En tant que développeur, qu’elle est ma responsabilité vis à vis du respect de la vie privée des internautes ?”.

D’un point de vue utilisation, on retiendra la multitude d’outils alternatifs présentés : sharingbuttons.io, piwik, leaflet, mapbox, framasoft, …

A noter la mise en place le 25 Mai prochain de la GDPR, directive européenne relative à la protection de la vie privée des internautes ; et dont la mise en place risque de bouleverser une multitude de modèles économiques en place dans de nombreuses structures.

Internet et le mythe de la vie privée

Pour aller plus loin :


8 > C’est quoi être différent dans l’IT ?

par Haikel GUEMAR

Même si l’on n’en a pas forcément conscience, nos métiers sont également soumis, à des degrés divers, aux habituelles discrimination en vigueur : sexe, orientation sexuelle, age, milieu social, culture, …

Comment identifier la discrimination ? Comment la combattre ? Comment faire de la différence une richesse ? etc …

Beaucoup de questions qu’il est légitime de se poser, peu de réponses concrètes. Il est effectivement très difficile de répondre à ces problématiques en 45 min. L’intérêt étant avant tout de nous éveiller à certaines situations, de prime abord anecdotiques, mais qui franchissent en réalité certaines limites, censées nous interpeller.

 

Arnaud Chiron

Développeur R&D Groupe PSIH

 

Laisser un commentaire