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.
L'équipe SensioLabs parle lors de la SymfonyLive Online
Le 9 avril, deux développeurs de SensioLabs ont partagé leur expertise technique lors de la SymfonyLive Online édition française 2021. Nous avons eu Guillaume Loulier qui a parlé de « Cypress, le moderne E2E doit encore apprendre du passé. » et Laurent Voullemier sur « Plongée en profondeur dans le composant Formulaire. » Jetons un coup d'œil rapide à leurs présentations.
Guillaume Loulier : « Cypress, le moderne E2E doit encore apprendre du passé. »
Guillaume a parlé de Cypress, un framework qui devient de plus en plus populaire. Son exposé a commencé par une présentation de Cypress, un framework orienté E2E disponible via Yam NPM et Docker. Cypress offre une syntaxe familière, simple et intuitive avec des raccourcis pour accélérer le processus d'écriture.
Ensuite, il a comparé Cypress à ses concurrents tels que Behat ou Panther. Le framework n'offre pas de passerelle/bundle avec Symfony pour le moment et pas de support pour Selenium comparé à Panther.
Guillaume a présenté les pièges à éviter. Par exemple, malgré sa simplicité apparente, Cypress ne peut pas simplifier tous les tests. Déboguer les erreurs n'est pas toujours facile. Il a également discuté des avantages et des inconvénients de Cypress : comment l'utiliser au quotidien pour éviter les erreurs du passé. Enfin, Guillaume nous a donné ses conseils sur l'utilisation de Cypress, et ses recommandations sur ce framework :
Son conseil :
Rédiger des tests en dehors de l'application les rend plus résilients et évolutifs.
Les tests multi-navigateurs devraient devenir la norme.
Comme Symfony, Cypress pourrait offrir des extensions natives pour les frameworks/bibliothèques actuels.
Dans quels cas recommande-t-il ce framework ?
Pour produire des tests résilients, rapides et adaptés aux dernières évolutions front-end.
Si vous souhaitez gérer plusieurs navigateurs, requêtes réseau et les derniers développements client.
Si vous n'avez pas peur de JS, pour maintenir vos tests et optimiser votre CI.
Laurent Voullemier : « Plongée en profondeur dans le composant Formulaire »
Laurent a parlé du composant Formulaire dans son exposé, particulièrement ce qui se passe lorsque vous soumettez une requête avec un formulaire. Son exposé a commencé par la création d'un formulaire. Puis il a zoomé sur la classe FormFactory et ses six méthodes qui instancient un formulaire. Il s'est également concentré sur le ResolvedFormType, qui encapsule la logique d'héritage dans le composant Formulaire.
Ensuite, il a abordé l'initialisation des données du formulaire et sa soumission. À ce stade, le phénomène de récurrence est omniprésent : le composant est basé sur le pattern composite. Laurent a poursuivi en discutant de deux mécanismes essentiels pour la soumission de formulaire : DataTransformer et DataMapper. Ces deux concepts associés peuvent transformer un objet modèle de données en une représentation affichable sous la forme d'un formulaire HTML.
Pour conclure son exposé, Laurent a présenté deux autres concepts du composant. Ce sont les extensions pour ajouter une fonctionnalité complète au composant (validation, sécurité CSRF…) et les Guessers pour deviner le type d'un champ de formulaire à partir des métadonnées (Doctrine, validation ou autre) de l'objet qu'il représente.
Mathias Arlaud : « Une sérialisation adaptée avec API Platform »
Mathias est un récent diplômé de SensioLabs. Il a présenté à SymfonyLive Online un exposé sur API Platform. API Platform est un framework REST/GraphQL basé sur Symfony. API Platform fonctionne avec le processus de sérialisation/désérialisation, c'est-à-dire le processus de transformation d'objets en un format persistant et vice versa.
Mathias nous a expliqué qu'il existe une forte dépendance entre API Platform et les composants Serializer de Symfony. Grâce à cela, nous bénéficions d'une multitude de solutions techniques pour sérialiser un objet. De nombreux outils tels que DataTransformers ou DTP peuvent répondre à des besoins spécifiques. Certains peuvent être moins complexes alors que d'autres sont plus puissants. Mais comment choisir une solution technique répondant à nos besoins ? Certaines solutions nous ont été présentées lors de cet exposé. Mais aussi trois leviers dans API Platform pour améliorer la sérialisation :
Le ContextBuilder : lorsque la sérialisation dépend d'un état et/ou d'une requête.
La Resource Metadata Factory : lorsque la sérialisation dépend uniquement de la ressource indépendamment de ses valeurs.
Serializer et/ou DTO : agissant ici directement sur les données à sérialiser et non sur ses groupes.
Enfin, Mathias a présenté les nouvelles fonctionnalités de la version 2.6 d'API Platform publiée fin 2020.
Une première expérience réussie en tant que conférencier à SymfonyLive Online
Pour Laurent et Guillaume, parler lors d'une conférence SymfonyLive était une première expérience ! De plus, avec le passage à SymfonyLive Online, le format des conférences a évolué cette année. Pour éviter les problèmes techniques, toutes les conférences sont préenregistrées au préalable et ensuite diffusées pendant la conférence. Les conférenciers répondent aux questions dans la salle de discussion pendant la lecture de l'enregistrement. Ils discutent ensuite pendant quelques minutes en direct avec les participants à la fin de leur discours. Pour plus de détails sur la SymfonyLive Online édition française 2021, veuillez lire notre article de blog à ce lien.
Guillaume et Laurent ont été sélectionnés parmi plusieurs développeurs en raison de leur choix de sujets. Ils devraient intéresser la communauté des développeurs Symfony. Laurent a décidé de se concentrer sur le composant Formulaire car nous le voyons souvent comme une boîte noire. « Je l'ai étudié pour préparer la certification, et cela m'a inspiré à plonger dedans. » Guillaume a choisi de parler de Cypress, un framework qu'il avait déjà utilisé pour un projet chez SensioLabs.
Les conférences de Guillaume et Laurent se sont bien passées. Le niveau de stress a diminué avec la possibilité d'enregistrer à l'avance et de refaire de nouvelles prises. Ce n'est pas la même expérience que parler en public sur une scène. Mais ce nouveau format nécessite beaucoup de temps de préparation pour réaliser plusieurs tentatives et perfectionner vos sous-titres.
Cette double première a été un succès pour Guillaume et Laurent. Ils ont tous les deux apprécié l'opportunité de parler à la SymfonyLive. Ils sont prêts à renouveler l'expérience. Cette fois peut-être lors d'un événement physique !
Astuces pour présenter une conférence à SymfonyLive Online :
Laurent : « Je dirais : fermez les yeux et sautez. Le stress est naturel, même pour les conférenciers les plus expérimentés. Notre défi est de le gérer avec succès pour qu'il ne se voie pas. »
Guillaume : « Je pense que la partie la plus difficile est de commencer et de proposer une idée de conférence. Vous devez être capable de synthétiser et de vendre votre conférence lors du Call for Papers avec un bon résumé de votre sujet. »
Un grand merci à Laurent et Guillaume pour leurs histoires et leurs conseils utiles. Et félicitations à eux et à Mathias pour leurs excellents exposés 👏 Nous espérons vous revoir bientôt à la prochaine conférence Symfony !
Et n'oubliez pas que vous pouvez revoir toutes les conférences que vous avez manquées sur live.symfony.com avec votre bon.