Cela fait maintenant 3 ans que j’ai la chance d’être présent au Forum PHP chaque année. Encore un fois, je n’étais pas été déçu par l’organisation de l’événement et la qualité des conférences auxquelles j’ai pu assister. Bien joué aux bénévoles de l’AFUP (@afup) qui ont assuré une super gestion de l’évènement et qui ne cessent de s’améliorer année après année.

Performance, simplicité, résilience et PHP 7.4 !

Performance & simplicité

Deux conférences m’ont vraiment marqué à ce sujet : ‘’PHP pragmatic development’’ présentée par Frédéric Bouchery (@FredBouchery) et ‘’L’architecture progressive’’ de Matthieu Napoli (@matthieunapoli). Frédéric nous pousse à rechercher la simplicité et à toujours réfléchir à la meilleure solution adaptée à notre contexte. Il nous a donnée plusieurs outils permettant de prendre la meilleure décision en équipe comme les matrices de solutions. Il nous a rappelé d’avoir en tête que l’on code pour les autres mais aussi pour soit même et qu’il faut toujours s’efforcer de penser KISS : “keep it simple and sexy” !

Matthieu nous a fait un retour d’expérience sur sa nouvelle approche de conceptions d’un projet. Plutôt que de se focaliser sur un concept comme MVC, ou DDD, il nous conseille de mettre au coeur de notre réflexion 3 points à savoir le métier, le business et l’humain et nous a présenté le fruit de sa réflexion : une architecture par module étroitement lié au métier dans lesquelles chaque module ont leur propre logique et ne répond qu’à un seul besoin. On doit aussi s’autoriser à dupliquer certaine partie de son code dans plusieurs modules si cela est nécessaire afin d’avoir un minimum d’inter dépendance.Cette approche permet d’avoir du code facile à refactoriser.

Résilience

La résilience est la capacité d’un système ou d’une architecture réseau à continuer de fonctionner en cas de panne – Wikipédia

A un moment où à un autre, une application rencontrera des bugs plus ou moins critiques qui pourront menés à l’impossibilité d’utiliser le service. Cela arrive à toutes les appli, même à celles des plus grosses compagnies comme Google et Amazon. Aucune application ne peut garantir 99% de disponibilité. Tout développeur doit donc se demander comment son application se comportera en cas de crash.

Deux conférences ont traité du sujet, celle de Pascal Martin (@pascal_martin) – ‘’Une application résiliente dans un monde partiellement dégradé’’ , plutôt théorique et celle de Mickaël Andrieu (@mickael_andrieu) ‘’Concevoir des applications PHP résilientes en 2019’’ qui nous a fait un retour d’expérience sur la conception d’application résiliente chez Prestashop et d’un framework conçu autour de ce concept, le Prestashop Circuit breaker.

Concevoir une application résiliente implique une gestion du retry, du timeout et de mettre en place un fallback permettant de faire fonctionner l’application en mode dégradé.

Symfony HttpClient – PHP 7.4  

L’écosystème de Symfony et PHP ne cesse de s’améliorer et de nombreuse nouveauté nous permettront d’améliorer notre code d’ici la fin de l’année. La présentation de Nicolas Grekas (@nicolasgrekas) – ‘’Symfony HttpClient vs Guzzle vs HttPlug’’ était bluffante. Il a décrit ses étapes de conception dans la création du Symfony HttpClient. A travers des démos et benchmarks, il a su nous convaincre que ce nouveau composant intégré dans Symfony 4.3 saura aisément surpasser et remplacer le client Guzzle.

A noter, PHP 7.4 sera officiellement disponible le 28 novembre, vous pouvez commencer à tester dès maintenant ses nouvelles fonctionnalités. Damien Seguy (@faguo) nous a présenté ces nouvelles fonctionnalité lors de sa présentation ‘’Tout pour se préparer à PHP7.4’’.

Les vidéos de toutes ces conférences seront bientôt mises à disposition par l’AFUP, je ne peux que vous conseiller de prendre le temps de les regarder : https://www.youtube.com/user/afupPHP

J’ai déjà hâte d’assister à l’AFUP day qui aura lieu à Lyon le 15 mai 2020 pour apprendre plein de nouvelles pratiques 🙂