Share Button
CCIh6sjW8AAz9OK

La 9ème édition du Symfony Live s’est déroulée ce jeudi 09 avril à la Cité Universitaire de Paris. Contrairement aux précédentes éditions, les conférences ne se sont déroulées que sur une journée (le jeudi donc) alors que le vendredi était consacré à des sessions de formations, auxquelles nous n’avons pas assisté. De même, des flash talks de 10 minutes avaient lieu dans la salle principale alors qu’ils se déroulent d’habitude dans une salle annexe. C’est plutôt une bonne idée car certains sujet sont intéressants mais n’ont pas forcément suffisamment de contenu pour durer 40 minutes. Retour sur ces conférences.

Symfony, déjà 10 ans

Comme d’habitude, c’est Fabien Potencier qui s’occupe du discours d’ouverture. Cette année, il a profité de sa conférence improvisée (c’est ce qu’il prétend) pour revenir un peu sur l’histoire de Symfony. On retrouve des élements que l’on connait déjà, et d’autres un peu moins. Il s’est notamment expliqué sur les raisons de l’énorme virage opéré entre Symfony 1 et Symfony 2. S’en suit quelques confessions, sur le fait que s’il ne regrette pas la refonte de Symfony (à juste titre), il ne pourrait pas la refaire aujourd’hui, ou sur le fait que sa mère soit presque plus geek que lui (elle lui aurait appris l’intérêt de WhatsApp). De même, il s’explique sur les raisons de sa prise de distance avec le PHP-FIG pour divergence d’opinions. Il répond ensuite à quelques questions posées par des développeurs sur la concurrence de Laravel (basé sur Symfony…) ou l’avenir de Symfony. Fabien annonce également une version 2.8 LTS qui sortira en même temps que la version 3.0 en novembre. Cette 2.8 sera en fait la version 3.0 mais contiendra tout ce qui est déprécié en 3.0, le but étant de faciliter la migration vers la 3.2 pour les entreprises. Une première conférence non technique mais très intéressante. On termine en apprenant que c’est le dernier Symfony Live qui se tient à la Cité Universitaire (victime de son succès), et on apprend également que la Symfony Con, qui promet d’être énorme, se déroulera du 3 au 5 décembre aux Folies Bergères à Paris.

Ce qu’il faut retenir :

  • Symfony 2.8 LTS et 3.0 en novembre (3.2 sera LTS)
  • SymfonyCon aux Folies Bergères du 3 au 5 décembre
  • Les bundles c’est bien. Mais réfléchissez avant de les utiliser.

Le SyliusResourceBundle

On entre dans le vif du sujet avec une des problématiques récurrentes des interfaces d’administration : le CRUD. Il existe plusieurs solutions, EasyAdmin ou SonataAdmin pour les plus connues, et Arnaud Langlade nous livre “sa” (il n’a probablement pas travaillé seul) version : le SyliusResourceBundle. Ce bundle n’est pas un admin generator dans la mesure où il ne va pas générer de formulaires, mais propose une base solide pour gérer ses ressources dans le backend. Il repose sur des grands classiques comme FOSRestBundle, JMSSerializerBundle ou WhiteOctoberPagerfantaBundle. Cette conférence avait bien démarré mais on s’est perdu sur la fin dans les explications trop détaillées de la configuration du bundle qui semble pouvoir faire le café. On peut en effet pousser la configuration assez loin en définissant ses méthodes et critères de tri, ou même la pagination. Et tout ça se fait dans le routing.yml. Je suis pas fan, mais c’est une question de goûts.
Les slides sont ici et vous pouvez retrouver la documentation du bundle ici. C’est l’heure d’une petite pause!

Ce qu’il faut retenir :

  • N’est pas un Admin Generator
  • Est basé sur des APIs

De l’importance du cache HTTP

A chaque Symfony Live sa conférence sur le cache HTTP. Cette année, ce sont Jérôme Vieilledent et David Buchmann qui s’y collent avec une présentation du FOSHttpCacheBundle (ou plutôt de la librairie FOSHttpCache), et notamment de la manière de gérer le Contexte Utilisateur. En effet, si tout le monde ou presque sait maintenant gérer son cache de manière efficace, il reste parfois des petites problématiques sur la gestion des données dynamiques et propres à l’utilisateur connecté. Grâce à des explications claires et un petit jeu de rôle parfaitement joué (si, quand même), on a pu comprendre le fonctionnement du reverse proxy. Les slides de cette présentation sont disponibles ici, je ne sais pas si le petit jeu de rôle a été filmé et/ou diffusé car je n’ai tout simplement pas cherché. Place aux flash talks.

Ce qu’il faut retenir :

  • Le cache c’est génial
  • Mais attention au User Context. Si on se plante, tout le monde pourrait se retrouver connecté avec le compte admin

Bien gérer ses logs

Dans cette (trop) courte présentation, Olivier Dolbeau nous explique comment bien exploiter ses logs grâce à la stack ELK (Elasticsearch, Logstash, Kibana). Le principe est très simple : Logstash se charge de collecter, filtrer et analyser les logs, Elasticsearch les stocke de manière intelligente, et Kibana permet de les exploiter grâce à des statistiques et des interfaces graphiques. Quand je dis que cette conférence est trop courte, ce n’est pas un reproche à Olivier. En 10 minutes, on a déjà appris beaucoup, mais j’aurais personnellement aimé que ça dure plus longtemps. Une prochaine fois?

Ce qu’il faut retenir :

  • ELK!
  • Exploitez vos logs pour connaitre les faiblesses de l’application
  • Et pour connaitre le comportement de vos utilisateurs

Retour d’expérience, comment tout changer?

Bastien Jaillot et Etienne Samson nous parlent maintenant de leur expérience chez Médiapart. En résumé, une application vieillissante avec plein de bugs, perte de confiance du métier, développeurs démotivés, il fallait tout changer. C’est ce qu’ils ont fait. Si le changement technique est une vraie réussite, le facteur humain est plus difficilement maîtrisable, et si le métier a tout de suite été motivé, la surprise est venue de certains développeurs un peu réfractaires. Les conférenciers ont également utilisé une phrase qui m’a plu : “il ne faut pas avoir peur de la dette technique, tant qu’elle est remboursée“. Trop de gens perdent beaucoup de temps et d’argent par peur de la dette technique, alors que maîtrisée, elle est un atout. Les slides sont là.

Ce qu’il faut retenir :

  • Ne pas hésiter à tout refondre si l’application n’est plus satisfaisante et robuste
  • La dette technique, c’est pas grave, mais il faut la maîtriser

Sonata Project chez Canal+

Thomas Rabaix est le principal contributeur au projet Sonata, qui regroupe un nombre assez important de bundles pour faire pas mal de choses. Cette conférence présentait comment ces bundles étaient utilisés chez Canal+ dans le cadre de la refonte de sa plateforme web, une plateforme à l’architecture particulière et aux nombreuses contraintes techniques.
Les slides ont été mises en ligne.

Elasticsearch et Symfony

Un sujet qui nous intéresse particulièrement du fait de notre expérience avec Elasticsearch et Symfony, présenté par Nicolas Badey. Cette conférence a balayé les différentes fonctionnalités d’Elasticsearch et leur utilisation dans un projet Symfony. Une conférence qui reste intéressante même si nous connaissons bien le sujet. Un petit regret : le débit de parole un peu rapide. Mais vu l’étendue du sujet et les 10 petites minutes disponibles, ça reste pardonnable. Les slides sont disponibles ici.

Ce qu’il faut retenir :

  • On peut tout faire avec Elasticsearch

Le pattern View Model

Denière conférence de la matinée par Romain Kuzniak, qui traite du pattern View Model. Ce pattern bien connu (et ses variantes) permet de conserver la séparation des vues et du modèle. En effet, on a trop souvent tendance à retourner directement le modèle à la vue (via le controlleur). Mais si le modèle change, il faut également changer la vue. La solution : rajouter une couche d’abstraction, l’assembleur, qui va se charger d’agréger les données du modèle pour les passer à la vue. Les slides sont en ligne ici.

Ce qu’il faut retenir :

  • Ne couplez pas votre modèle avec vos vues

Maintenant, à taaaaaaaaable!

Même on ne vient pas au Symfony Live pour manger, l’année dernière, j’avais été un peu frustré d’arriver devant un buffet vidé de son contenu (on avait un peu traîné à faire la queue). Cette année, rien de tout ça. Sensio Labs n’aimant probablement pas faire d’erreurs, ils ont tapé très fort avec un buffet gigantesque et bien fourni (la preuve avec une photo faite par Smile).
CCJva5HWEAA69wF
Un flash talk a eu lieu durant le repas dans cette salle bondée. La pause du midi étant sacrée, et comme on entendait de toute façon pas grand chose, on a préféré profiter du beau temps dans le Parc Montsouris.

Modernisation du backend Meetic

Cette conférence fait écho à celle sur la conduite au changement chez Médiapart, mais plus du point de vue technique. Joris Calabrese et Etienne Broutin nous expliquent comment l’énorme volume de code et la croissance de l’application ont conduit les équipes techniques à avoir peur de mettre en production, de corriger des bugs, de refactorer. Cette conférence me parle particulièrement car c’est exactement le but de la mission que je mène actuellement chez un client. La différence est que chez Meetic, la refonte et le changement de stratégie a déjà été opéré, et il reste rassurant de voir que c’est effectivement la bonne chose à faire. Vous pouvez voir la présentation ici, et comme l’a souligné un “poseur de question” après la conférence, elle est plutôt jolie.

Ce qu’il faut retenir :

  • Vos développeurs ne sont plus maîtres de la technique?
  • Les mises en production sont hasardeuses?
  • Refaites tout!

Et maintenant place à Grégoi… Ah ben non. Nouveauté de cette année, et pour le coup c’est plutôt une mauvaise idée, nous avons droit à une page de publicité. Un peu comme quand on regarde la télé chez soi. Un des sponsors gold nous fait un petit speech sur sa boite, ce qu’ils font, combien ils sont, qu’ils recrutent (tout le monde recrute), … Bref, du blabla commercial qui ne m’intéresse pas. J’en ai profité pour aller marcher un peu.

Logger la prod

Et maintenant, place à Grégoire Pineau (et son chat) pour nous parler des logs. C’est un peu le préquel de la conférence d’Olivier. Rien de bien nouveau ici si vous avez déjà utilisé Monolog et ses channels, mais la conférence était néanmoins très intéressante, et on a découvert quelques petits tips assez utiles (comme l’utilisation du NullLogger pour éviter les if ($sdebug) {} ou même l’utilisation du contexte pour pouvoir agréger efficacement ses logs). Les slides sont ici.
Ce qu’il faut retenir :

  • Loguez encore et encore
  • Exploitez les canaux de Monolog et utilisez le contexte pour pleinement tirer parti d’un log
  • Une notice EST une erreur, n’en laissez pas

Débugger comme un pro avec VarDumper

Dans une conférence similaire à celle de l’année dernière, Nicolas Grekas nous parle des nouveautés introduites dans la dernière version des composants Debug et VarDumper. S’en suit une petite démo en live où on voit que l’on pourra bientôt vraiment débugger de manière efficace en PHP. Plutôt convaincant, et il faudra bientôt perdre le réflexe d’utiliser var_dump(). Les slides sont disponibles ici.

Ce qu’il faut retenir :

  • Plus de var_dump, utilisez le VarDumper
  • La DebugBar va devenir encore plus utile

Des applications API-centric avec Symfony

Kévin Dunglas nous parle maintenant du développement d’API modernes et des nouveaux standards qui commencent à prendre forme, notamment JSON-LD poussé par le W3C et schema.org. Après une présentation des APIs, il parle maintenant des bundles réalisés pour faciliter le développement d’applications basées sur des APIs, notamment le JsonLdApiBundle qui devrait sortir en même temps que Symfony 2.7.
Les slides de cette conférence très intéressante sont disponibles ici.

Ce qu’il faut retenir :

  • Les APIs, c’est la vie
  • JSON-LD, Hydra, schema.org sont l’avenir des APIs

La puissance du DIC

Après une “petite” page de publicité que j’ai préféré ne pas regarder, Adrien Brault nous parle du DIC, Conteneur d’Injection de Dépendances, qui est au centre du framework Symfony puisqu’il permet aux services d’interagir. Cette conférence m’a un peu déçu car j’aurais voulu pousser les explications beaucoup plus loin, comprendre comment fonctionne le DIC en interne, apprendre comment l’optimiser etc. Au lieu de cela, la présentation est resté très basique, ce qui est une excellente chose pour les débutants, mais moins intéressant pour tous ceux qui ont déjà travaillé avec les services.
Les slides sont disponibles ici.

Ce qu’il faut retenir :

  • Il faut maîtriser le DIC

La virtualisation avec Docker

Un petit soucis technique a retardé le début de cette excellente conférence sur l’utilisation de Docker pour développer, pour lancer les tests, pour envoyer des mails, bref…. pour tout faire. Jérémy Derussé nous fait part de sa fascination pour la virtualisation. Que ce soit pour démarrer un projet Oracle en 15minutes, ou travailler sur 5 projets en parallèle et sur des technos différentes, Docker est un précieux allié. Cette conférence très technique, et peut être difficile à suivre pour qui n’a jamais fait de Docker, a permis de démontrer les nombreux avantages et points forts de Docker.
Les slides sont consultables ici.

Ce qu’il faut retenir :

  • Une VM c’est gourmand, Docker c’est léger
  • Virtualisez tout ce que vous pouvez pour isoler
  • Un besoin? Il y a un conteneur pour ça

La fast API

Après une page de pub (ou c’était avant?), Jonathan Petitcolas prend son courage à deux mains pour un dangereux exercice de live coding. Son objectif? Réaliser une API (certes simple) en moins de 10 minutes grâce au NgAdminGeneratorBundle (basé sur AngularJs comme son nom l’indique). Une petite conférence vraiment convaincante tant il semble facile et rapide de réaliser des APIs (et les interfaces CRUD).
Comme Jonathan a fait la démo en live, il n’y a pas de slides. Néanmoins, il existe un tutoriel qui explique la même chose.

Ce qu’il faut retenir :

  • Très très rapide pour faire un CRUD à base d’API
  • Peu de code, mais beaucoup de configuration (une commande l’écrit pour vous)

Malheureusement, c’est la dernière conférence à laquelle j’ai assisté. La chaleur et les trop nombreuses présentations commerciales qui ont eu lieu entre chaque talk ont eu raison de moi. Ces présentations de pub ont aussi eu pour effet de décaler le planning de précieuses minutes (voire dizaines de minutes) et nous n’avons pas pu rester pour assister à la dernière conférence et à la session de clôture (le TGV n’attend pas).

Pour conclure ce Symfony Live

En conclusion, il s’agissait d’une version un peu réduite du Symfony Live. Je ne sais pas encore si je préfère un ou deux jours de conférences. Globalement, l’événement est plutôt réussi malgré quelques conférences au niveau technique insuffisant (à mon gout) et malgré les trop nombreuses présentations commerciales non planifiées des sponsors Gold. J’espère que sur ce point, la Symfony Con ne s’inspirera pas du Symfony Live. Sur un plan plus anecdotique, les goodies étaient également un peu décevants.
Mais on ne peut que féliciter, à nouveau, Sensio Labs pour l’organisation bien rodée (dédicace aux “vigiles”) et on a hâte d’être en décembre pour la Symfony Con.

Share Button