Nous avons assisté à la toute dernière édition du Forum PHP cette année à Paris. Nous étions présents pour échanger et apprendre pendant deux jours. Beaucoup de choses ont été abordées et nous allons, dans cet article, revenir sur les sujets qui nous ont le plus marqué.
Jour 1
Comment j’ai commencé à aimer ce qu’ils appellent « Design Pattern »
Samel Rozé nous a parlé des designs patterns et de leur implémentation dans un projet web. Il en a présenté trois dans cette conférence (Adapter, EventDispatcher, Decorator) avant de nous rappeler l’intérêt de faire un code propre, réutilisable et évolutif.
Samuel Rozé a clôturé sa conférence avec la phrase suivante :
Les Design Pattern nous aident à permettre le changement dans notre code.
Serverless et PHP
Matthieu Napoli nous a parlé de PHP et de Serverless (appelé function-as-a-service platform). L’idée générale est d’épargner aux développeurs web de penser au multi-threading ou à l’équilibrage de charge. Il suffit juste de faire confiance au FaaS pour déléguer toute la gestion de leurs ressources. Il s’avère également être beaucoup moins cher que de se voir facturer une quantité fixe de serveurs.
Il a précisé que l’on code effectivement des fonctions et non plus de l’applicatif. Matthieu Napoli a appuyé sur le fait que le grand intérêt de Serverless réside dans le paiement à la consommation. Contrairement à l’utilisation d’une application classique où l’on paie le serveur, que l’on consomme la ressource ou non.
Liens pour les plus curieux :
Sylius quelques chocolats plus tard
Jacques Bodin-Hullin et maxime Huran nous ont présenté leur retour d’expérience sur leur transition Magento vers Sylius et Symfony.
Ils ont essayé de promouvoir le passage vers Sylius en insistant sur le fait qu’il se base sur des composants fluides bien testés et qui se marient très bien avec l’écosystème Symfony. Sylius étant basé sur Symfony, il profite bien de tous ses bienfaits, à savoir les tests, les fixtures, les bundles, etc.
Maintenir et faire évoluer une API GraphQL
Aurélien David a exposé la difficulté que représente l’évolution d’une API et nous donne les clés pour pouvoir la faire évoluer.
Même si le fait d’éditer un champ dans une API GraphQL est assez simple, il se trouve qu’il est primordial de prévoir une période de dépréciation.
Aurélien se base sur le principe d’évolution continue qui consiste à modifier l’API de façon progressive, principe appliqué chez Facebook et Github.
Aurélien nous a présenté éventuellement l’outil GraphQL Doctor qu’ils ont développé afin de pouvoir inspecter les changements de schéma et alerter les développeurs directement avant de merger leur travail.
Symfony 4 : une nouvelle expérience de développement
Titouan Galopin a présenté les nouvelles fonctionnalités de Symfony 3.4/4.
Titouan Galopin a introduit également une nouveauté qui ravira les travailleurs du front end, à savoir la librairie JS « Webpack Encore », qui offre une utilisation simplifiée du fameux bundler dont l’accessibilité n’est pas évidente pour les nouveaux utilisateurs.
Vous pouvez consulter les détails de cette version sur l’article dédié à Symfony 4 en 10 points.
Comment fonctionne la cryptographie
Julien Pauli nous a parlé des notions fondamentales de la cryptographie : les opérateurs XOR, OR, etc. Comment chiffrer une clé et en combien de temps on peut la déchiffrer. Une explication des pré-requis, des problématiques liées à ce système et des solutions apportées au fil du temps sont les sujets abordés lors de cette conférence.
Pour les plus curieux des exemples de la conf sont disponibles sur Github.
Jour 2
Symfony/messenger, un composant à votre service
Stéphane Hulard nous a présenté le composant développé par Samuel Rozé. Dans cette présentation le speaker a essayé de présenter une vue d’ensemble de la structure du composant et de mettre l’accent sur le fait que le composant se base sur un système d’events et après a fait un tour d’horizon sur sa configuration et sur ses principales fonctionnalités.
Nous avons appris que le composant devrait être stabilisé pour la version 4.3 de Symfony.
Pour en savoir plus sur ce composant : https://speakerdeck.com/shulard/messenger-un-composant-a-votre-service
Docker en Prod ? OUI, avec Kubernetes
Pour ce talk, Pascal Martin nous a parlé de la démarche qu’ils ont suivi chez M6 afin de mettre en place docker en environnement de développement et puis progressivement en production.
Il nous a expliqué le besoin qu’ils ont eu pour utiliser un orchestrateur de conteneurs. La solution était d’utiliser Kubernetes, il en a profité donc pour nous lister les avantages d’utiliser Kubernetes (utilisation des Pods, des nodes, deployments et health checks).
Pascal Martin est en train d’écrire un livre sur le sujet.
Pour voir les slides : https://blog.pascal-martin.fr/public/slides-docker-en-prod-avec-kubernetes-forum-php-2018/#/0/1
Générateurs et programmation asynchrone : mode d’emploi
Le premier point évoqué était de ne pas confondre le traitement asynchrone côté PHP avec le traitement asynchrone côté Javascript.
Benoit Viguier a fait une petite introduction à la nouvelle bibliothèque Tornado qu’ils viennent de mettre en open-source chez M6WEB.
Cette bibliothèque vise à simplifier la programmation asynchrone en proposant des adapters pour différentes implémentations AMP, REACTPHP, ETC.
Pour voir les slides : http://b-viguier.github.io/downloads/talks/ForumPhp-AsyncGenerators.pdf
MySql 8.0 : Quoi de neuf
Pour ce talk, Olivier Dasini nous a présenté les dernières nouveautés de la version 8.0 de MySQL.
Les 4 nouveautés majeures de cette nouvelle version sont :
- Mobile Friendly (support des emojis et de l’unicode)
- Developer First (nouvelle API et modèle de données hybrides possible)
- Data Driven (optimisation des services d’analyse en temps réel)
- Scalable & Stable (amélioration de la sécurité et diminution du downtime)
Une autre nouveauté intéressante de cette version est l’intégration poussée de la gestion du JSON en tant que donnée, avec la possibilité d’utiliser des fonctions SQL sur les données JSON.
Il sera donc possible de parcourir les tableaux JSON avec des fonctions natives SQL dans le but de créer des tables virtuelles associées.
Boostez vos applications avec HTTP/2
Kévin Dunglas membre de la core-team Symfony, a abordé la nouvelle version du protocole HTTP (dérivé de SPDY, originalement développé par Google).
Kévin Dunglas a constaté que même si l’informatique évolue très vite, l’HTTP n’a jamais changé depuis la version 1.1 qui date de 20 ans jusqu’à ce que Google vienne s’y intéresser.
On a appris ensuite que la version 2.0 est supportée par tous les navigateurs récents mais qu’elle nécessite obligatoirement l’utilisation du protocole HTTPS sur son site, ce qui peut s’avérer contraignant.
Dans le même cadre, Kévin Dunglas nous a présenté son nouveau bébé Mercure.
Mercure est un protocole permettant de transmettre les mises à jour des données aux navigateurs Web et aux autres clients HTTP de manière pratique, rapide, fiable et économe en énergie. Il est particulièrement utile pour publier des mises à jour en temps réel des ressources servies via des API Web, pour des applications Web et mobiles réactives.
Pour les curieux, ces liens peuvent vous servir :
Cessons les estimations
Frédéric Leguédois nous a parlé d’un sujet sensible pour tous les développeurs et chef de projet. Ce sujet est le suivant : les estimations d’un projet. Il a démontré par l’exemple et avec beaucoup d’humour à quel point ces estimations peuvent être erronées.
Il est parti du principe que les deadlines sont les plus grosses génératrices de bug car des estimations impliquent des plannings qui impliquent des deadlines, de la pression et du coup un code bâclé qui sera une source de bug !
Frédéric Leguédois a critiqué le fait de lier la réussite d’un projet au respect d’une deadline et explique que l’informatique est le seul métier dans lequel on considère qu’une estimation est la réalité alors que par définition une estimation n’est pas forcément fiable.
Frédéric Leguédois se moque gentiment des phrases souvent entendues de chefs de projets tentant de justifier les retards par rapport aux estimations, comme par exemple :
- “Mon planning était bon mais le client a changé d’avis”
- “Mon planning était bon mais les devs sont en retard”
Finalement Frédéric a encouragé les chefs de projets ainsi que les équipes de devs à se concentrer sur l’humain plutôt que sur le respect d’une deadline, de favoriser la communication entre les membres de l’équipe et avec le client, de favoriser la transparence avec le client et de créer des relations de confiance.
Il rappelle par la même occasion quelques fondements du manifeste agile :
- “Les individus et leurs interactions plus que les processus et les outils”
- “La collaboration avec les clients plus que la négociation contractuelle”
- “L’adaptation au changement plus que le suivi d’un plan”
Pas encore de commentaires