Les speakers SensioLabs au SymfonyLive Online en français

Le SymfonyLive Online French Edition s’est tenu le 9 avril dernier dans un nouveau format en ligne. Deux développeurs de SensioLabs, Laurent Voullemier et Guillaume Loulier, y ont participé en tant que speakers. Ils nous parlent de leurs talks et de leur expérience.

Les talks de l’équipe au SymfonyLive Online

Le 9 avril dernier, deux développeurs de SensioLabs ont partagé leurs connaissances techniques à l’occasion du SymfonyLive Online French Edition 2021. Guillaume Loulier avec « Cypress, le E2E moderne doit encore apprendre du passé ». Et Laurent Voullemier avec « Deep dive into the form component ». C’est l’occasion d’un petit résumé de leurs sujets.

Guillaume Loulier : « Cypress, le E2E moderne doit encore apprendre du passé »

Talk-de-SensioLabs-SymfonyLive-Online-French-Edition-Guillaume-Loulie

Dans son talk, Guillaume nous a parlé de Cypress, un outil qui fait parler de lui et gagne de la notoriété assez rapidement. Son talk a débuté par une présentation de Cypress, un framework orienté E2E et disponible via Yam NPM et Docker. Cypress propose une syntaxe connue, simple et intuitive avec des raccourcis pour accélérer le processus d’écriture.

Puis, Cypress a été comparé à ses concurrents tels que Behat ou Panther. L’outil ne propose pas pour le moment de bridge / bundle avec Symfony et pas de support pour Selenium en comparaison avec Panther.

Les pièges à éviter ont ensuite été présentés par Guillaume. Par exemple, malgré sa simplicité apparente, Cypress ne peut pas simplifier tous les tests, ou encore le debug de certaines erreurs n’est pas toujours simple. Les points positifs et négatifs de Cypress ont également pu être abordés ainsi que son utilisation au quotidien pour éviter de reproduire les erreurs du passé. Enfin, Guillaume nous a donné ses conseils quant à son utilisation, ainsi que sa recommandation ou non sur cet outil :

Ses conseils :

  • Écrire ses tests en dehors de l’application permet de les rendre plus résilients et évolutifs.
  • Le cross-browser testing doit devenir la norme.
  • À l’instar de Symfony, Cypress pourrait proposer des extensions natives pour les framework/librairies actuelles.

Dans quelles situations l’outil est-il recommandé selon lui ?

  • Pour produire des tests résilients, rapides et adaptés aux dernières évolutions front-end.
  • Si vous souhaitez gérer plusieurs navigateurs, les requêtes réseaux et les dernières nouveautés côté client.
  • Si vous n’avez pas peur du JS, pour maintenir vos tests et d’optimiser votre CI.

Laurent Voullemier : « Deep dive into the Form component »

Talk-SensioLabs-Laurent-Voullemier-SymfonyLive-Online-French-Edition

Laurent a abordé le composant Form lors de son talk. Et plus précisément ce qui se passe lorsqu’on soumet une requête qui traite d’un formulaire. Le talk a commencé par la création d’un formulaire. Puis un zoom sur la classe FormFactory et ses six méthodes permettant toutes d’instancier un formulaire. Il s’est également arrêté sur les ResolvedFormType, qui encapsulent la logique d’héritage dans le composant Form.

L’initialisation des données du formulaire puis leur soumission ont ensuite été traitées. À ce stade, une omniprésence du phénomène de récusion est observable : en effet le composant se base fortement sur le pattern composite. Laurent s’est ensuite attardé sur deux mécanismes essentiels de la soumission de formulaires : les DataTransformer et les DataMapper. Ces deux concepts associés permettent de transformer un objet du modèle de données en une représentation affichable sous forme d’un formulaire html.

Pour conclure son talk, Laurent nous a présenté deux autres notions du composant. Il s’agit des extensions permettant de rajouter une fonctionnalité complète au composant (validation, sécurité CSRF…) et les Guessers permettant de deviner le type d’un champ de formulaire à partir des métadonnées (Doctrine, de validation ou autre) de l’objet qu’il représente.


Mathias Arlaud « Une sérialisation adaptée avec API Platform »

Mathias est Alumni de SensioLabs depuis peu. Il a présenté au SymfonyLive Online un talk sur API Platform. API Platform est un framework REST/GraphQL qui est basé sur Symfony et construit autour du processus de sérialisation/désérialisation c’est-à-dire le processus d’objets dans un format persistant et inversement.

Mathias nous a expliqué qu’il existe une très forte dépendance entre API Platform et les composants Serializer de Symfony qui permettent de nous fournir une multitude de solutions techniques afin de sérialiser un objet. De nombreux outils tels que DataTransformers ou encore DTP peuvent répondre à des besoins spécifiques. Certains d’entre eux peuvent être moins complexes et d’autres plus puissants. Cependant, comment choisir une solution technique qui saura correspondre à nos besoins ? Certaines solutions nous ont donc été présentées lors de ce talk. Mais aussi 3 leviers dans Api Platform pour dynamiser la sérialisation comme :

  • Le ContextBuilder : devant être utilisé lorsque la sérialisation dépend d’un état et/ou d’une Request
  • La Resource Metadata Factory : à utiliser lorsque la sérialisation dépend seulement de la ressource indépendamment de ses valeurs
  • Serializer et/ou DTO : agissant ici directement sur donnée à sérialiser et non plus ses groupes

Enfin Mathias nous a présenté les nouveautés de la version 2.6 d’API Platform sortie fin 2020.


Une première expérience de speaker au SymfonyLive réussie

Pour Laurent comme pour Guillaume, parler à une conférence SymfonyLive était une première ! De plus, avec le passage au SymfonyLive Online, le format des talks a évolué cette année. Pour éviter un problème technique le jour J, les talks sont tous préenregistrés à l’avance, puis diffusés lors de la conférence. Les speakers répondent aux questions sur le chat pendant la diffusion de l’enregistrement. Ils discutent ensuite pendant quelques minutes en live avec les participants, à la fin de leur intervention. Pour plus de détails sur le SymfonyLive Online French Edition 2021, retrouvez notre article de blog à ce lien.

Guillaume et Laurent ont été sélectionnés parmi plusieurs développeurs grâce au choix de leurs sujets qui devaient intéresser la communauté des développeurs de Symfony. Laurent a fait le choix de traiter du composant Form car ce composant est souvent vu comme une boîte noire. « Je l’ai étudié pour préparer la certification et ça m’a donné envie de m’y plonger ». Guillaume a quant à lui choisi de parler de Cypress, un outil qu’il avait pu utiliser dans le cadre d’un projet chez SensioLabs.

Les talks de Guillaume et Laurent se sont bien passé. Le niveau de stress diminue avec la possibilité de se préenregistrer et de refaire de nouvelles prises. En effet, ce n’est pas la même expérience que parler en public sur une scène. Mais ce nouveau format demande un temps de préparation important pour faire plusieurs essais et perfectionner ses sous-titres.

Cette double première a été réussie pour Guillaume et Laurent. Ils ont tous les deux beaucoup apprécié l’opportunité de parler au SymfonyLive et sont prêts à rééditer l’expérience. Cette fois peut-être au cours d’un événement physique !

Quelques conseils pour présenter un talk au SymfonyLive Online :

Laurent : « Je dirais : fermer les yeux et sauter. Le stress, c’est normal, même pour les speakers plus expérimentés. Le défi, c’est de réussir à le gérer pour que ça ne se voit pas ».

Guillaume : « Je pense que se lancer et proposer une idée de talk, c’est le plus dur. Il faut réussir à synthétiser et vendre le talk pendant le call for papers avec un bon résumé de notre sujet ».

Un grand merci à Laurent et Guillaume pour leurs témoignages et leurs précieux conseils. Et bravo à eux ainsi qu’à Mathias pour leurs excellents talks 👏 Nous espérons vous revoir bientôt à une prochaine conférence Symfony !

Et n’oubliez pas que vous pouvez revoir toutes les conférences que vous avez manqué en replay sur live.symfony.com grâce à votre voucher.