Symfony ExpressionLanguage : Comment utiliser ce composant ?
Le composant Symfony ExpressionLanguage : qu'est-ce que c'est ? Quand et comment l'utiliser ? Comment créer des expressions lors de cas plus complexes ?
La semaine dernière se tenait la conférence SymfonyWorld Online 2021 Summer Edition et j'y ai assisté. Je vais partager avec vous dans cet article le Best of des conférences de l'événement selon moi.
La conférence avait lieu en ligne, sur la plateforme Hopin. C'est un super outil bien adapté au format de la conférence. On peut avoir plusieurs tracks en parallèle, des "booths" en live pour échanger avec des gens, un chat, une section Q&A, et même un chatroulette pour rencontrer de nouvelles personnes !
Chaque présentation passait deux fois dans la journée : une fois sur un créneau défini à l'heure française, et une seconde fois 7h plus tard pour permettre aux gens outre atlantique d'en profiter. Les conférences étaient pré-enregistrées par les speakers, mais ils étaient présents avant / pendant et après leur créneau pour répondre aux questions en live.
Vous pouvez retrouver le programme complet de l'événement ici.
Avant de parler des conférences qui ont particulièrement retenu mon attention, je voudrais noter que toutes les présentations étaient très intéressantes et que les sujets étaient variés.
Nicolas Grekas, contributeur Symfony, nous a présenté le composant UID de framework.
Il a parlé en détails de ce qu'est un identifiant unique, des cas d'utilisation et de leur utilité d'un point de vue métier. Nicolas a décrit les types d'identifiants uniques et leurs différences (UUIDV4, UUIDV6, ULID, etc.).
Ensuite, il a présenté le composant Symfony, sa configuration et son utilisation. Nous avons vu que le composant met à notre disposition des commandes pour générer ou inspecter différents types d'identifiants, ainsi que des Factory pour générer des identifiants via le code. Cerise sur le gâteau : il est possible d'avoir des champs de type Ulid (ou UUID en PostgreSQL) dans des entités Doctrine. Intéressant, non ?
Enfin, Nicolas a décrit pourquoi ce composant a été créé. Je vous laisse découvrir cette partie lorsque le replay sera disponible.
J'ai apprécié ce talk car il s'agît d'un composant Symfony qu'on n'a pas souvent l'occasion de voir, il est bien présenté et très informatif.
Stefan Koopmanschap, développeur PHP depuis PHP3, a parlé du métier du développeur, et son point de vue est très intéressant : nous ne travaillons pas dans l'informatique, mais dans l'apprentissage.
Au début de nos carrières, à l'image d'un jeu vidéo, notre personnage n'a ni équipements ni skills. Au fur et à mesure que nous avançons, nous découvrons de nouvelles choses, acquérons des compétences, et ainsi apprenons à maîtriser les bases de PHP.
En travaillant avec des outils disponibles, nous sommes amenés à y contribuer, que ce soit par de la traduction de documentation, de l'aide sur des forums, des articles de blog, de l'organisation d'événements, etc. De ce fait, nous contribuons à l'open source. Contribuer à l'open source ce n'est pas seulement écrire du code et faire des pull requests, toutes les contributions ont leur importance.
Avec l'arrivée de PHP4 & PHP5, la programmation orientée objet est arrivée dans le PHP. Cela a impliqué beaucoup de changements dans la façon de travailler et a demandé aux gens de s'adapter à nouveau. Pour cela, Stefan s'est tourné vers son manager, qui est devenu son mentor et qui l'a accompagné dans cette transition. Stefan a ensuite lui-même été mentor pour d'autres personnes.
Le temps passant, Symfony est arrivé. Après une journée de POC en pair programming, Stefan s'est rendu compte de l'avantage du framework. Et cela a changé sa vision du développement : le framework fournissant un cadre de travail intégrant les bases pour une application, on peut se concentrer sur les besoins métier. Stefan a aussi réalisé le pouvoir du pair programming.
En s'impliquant dans la communauté Symfony, Stefan en est arrivé à faire sa première présentation publique en 2007. Ce qui lui a permis d'apprendre de nouvelles choses : notamment comment expliquer des notions de programmation devant un public en un temps limité. Il a ainsi développé des compétences en communication, dont l'importance est souvent sous-estimée dans le développement !
La conclusion de cette présentation, c'est que tout au long de notre carrière nous ne cessons d'apprendre. Les choses évoluent très vite et nous devons nous adapter continuellement. Finalement, notre métier ne serait-il pas l'apprentissage continu plutôt que le développement à proprement parler ?
François Zaninotto, ancien contributeur Symfony et Lead dev de plusieurs projets open source, a fait une présentation sur l'empreinte carbone du domaine numérique. Les activités numériques sont responsables de 4% des émissions de gaz à effet de serre dans le monde, presque autant que les avions. Mais comparé à d'autres activités humaines, ce n'est pas un chiffre énorme. Alors pourquoi faut-il s'inquiéter ? Tout simplement parce que la courbe illustrant les émissions de gaz à effet de serre liées au numérique croit de façon exponentielle, et nous n'en sommes qu'au début.
Mais alors, comment pouvons-nous réduire l'impact carbone de nos applications ? La première étape serait de mesurer l'empreinte actuelle, mais ce n'est pas si simple. N'ayant pas trouvé d'outils permettant d'avoir des résultats fiables, François et son équipe se sont penchés sur la question.
En utilisant docker et docker-compose on peut avoir un container cypress avec un navigateur headless, et on peut obtenir des métriques grâce à la commande docker stats
(CPU, mémoire, etc.). On peut ensuite convertir ces métriques en Watt/heure, et en utilisant le site Electricity Map on peut convertir les Watt/heure en émissions CO2.
En se basant sur ce modèle, François et son équipe ont publié l'outil Greenframe.io, bientôt open source. Voici quelques chiffres intéressants qui ressortent après un an et demi d'évaluations d'applications web. L'écran du visiteur d'un site web consomme plus de 30% des ressources, ainsi, plus un utilisateur va passer de temps sur votre application, plus elle sera polluante. Le CPU et les appels réseau arrivent après l'écran. Le serveur quant à lui ne consomme que 5% des ressources.
Quelles sont les mesures à prendre face à ce constat ? Voici les conseils de François pour réduire l'empreinte carbone de nos applications.
Premièrement, il ne faut développer que les fonctionnalités réellement nécessaires au bon fonctionnement de l'application, et éviter tout ce qui pourrait engendrer une expérience additive chez nos clients (autoplay, gamification, etc.), afin de minimiser le temps qu'ils passeront sur nos applications.
Deuxièmement, nous savons que la production d'un ordinateur ou d'un téléphone mobile pollue bien plus que leur utilisation. Par conséquent, il faut adapter nos applications aux modèles plus anciens, pour ne pas pousser nos clients à acheter du matériel récent sans réel besoin. De la même façon, nous pouvons héberger nos applications sur des serveurs plus anciens que ce soit on premise ou dans le cloud.
Un autre moyen de réduire l'empreinte carbone de nos applications est d'utiliser moins de ressources : réduire le nombre d'appels réseau, comprimer les images, réduire la rétention de données et les tags tiers utilisés par exemple.
Enfin, nous pouvons choisir un hébergeur qui utilise de l'énergie renouvelable. The site The green web foundation peut nous aider à faire un choix en ce sens, même si certains hébergeurs manquent encore de transparence.
La présentation de François Zaninotto est très motivante et encourageante ! Armés de ces informations, nous savons quoi faire pour contribuer au changement.
Voilà ! C'était les 3 présentations qui m'ont le plus marqué lors de la conférence. Je vous conseille néanmoins de regarder toutes celles qui vous paraissent pertinentes lorsque le replay sera disponible, elle valent toutes le détour. Nous avons hâte de voir le programme de SymfonyWorld Online 2021 Winter Edition !
À bientôt !
Auteur(s)
Marie Minasyan
Astronaute Raccoon @ ElevenLabs_🚀 De retour dans la Galaxie.
Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !
Notre équipe d'experts répond à toutes vos questions.
Nous contacterDécouvrez nos autres contenus dans le même thème
Le composant Symfony ExpressionLanguage : qu'est-ce que c'est ? Quand et comment l'utiliser ? Comment créer des expressions lors de cas plus complexes ?
Découvrez comment réaliser du typage générique en PHP : introduction et définition du concept, conseils et explications pas-à-pas de cas pratique.
Découvrez un cas d'usage d'intégration d'un CRM avec une application e-commerce, en asynchrone, avec Hubspot et RabbitMQ