Pour la deuxième fois, Clever Age m’offre la possibilité d’aller au forum PHP 2021 qui s’est tenu ces 21 et 22 octobre 2021 à Bagnolet. Et c’était un plaisir de pouvoir participer à nouveau à un évènement en présentiel !
Voici un résumé de chaque conférence que j’ai pu voir :
Vers la sobriété numérique
Au cours de cette conférence, François ZANINOTTO a souhaité nous sensibiliser sur l’émission de CO2 et l’impact que peuvent avoir nos applications WEB sur l’environnement. Pour vous donner un ordre d’idée sur la consommation actuelle, c’est environ 12 tonnes de CO2 par français et par an (la librairie Faker du même conférencier, c’est aussi 12 tonnes de CO2).
Il nous a montré deux outils permettant d’obtenir des informations sur l’émission de CO2 d’une page Web : Website Carbon Calculator et GreenITAnalysis. Mais en observant le code Open source de ces sites, les différents calculs n’ont aucune valeur scientifique contrairement à son outil GreenFrame, qu’il a choisi de nous présenter.
Chaque action réalisée lorsque l’on accède à une page Web (utilisation d’un écran, navigation, accès à un serveur, …) consomme du CO2. Nous pouvons le réduire en utilisant le cache par exemple, un CDN ou encore en éteignant les machines non utilisées.
Symfony 6 : le choix de l’innovation et de la performance
Nicolas GREKAS évoque la prochaine sortie de Symfony 5.4 et 6, fin novembre, en nous montrant quelques améliorations du framework. On peut noter par exemple l’utilisation d’attribut PHP 8 pour les commandes Symfony, l’autowiring des services union et intersect type, …
Il nous a aussi expliqué, durant la conférence, le processus de contribution propre à Symfony.
Transformer une application RAD vers du DDD, pas à pas
Pour une application de santé qui propose des jeux à des centres de soins ou à des entreprises, Charles DESNEUF nous parle du processus qu’il a effectué pour passer d’une application CRUD vers du DDD (Domain Driven Design) :
en passant par l’event storming (atelier regroupant développeurs et personnes du métier en question), en effectuant des tests (Approval testing) pour comprendre le fonctionnement du système, la refactorisation, l’utilisation du pattern CQRS (Command Query Responsibility Segregation), la création de vue MySQL et la création d’entité Doctrine.
Est-ce que vous faites de la biologie sans le savoir ?
La conférence a été présentée par Stéphanie TRUMTEL. Elle nous a parlé des liaisons étroites que peuvent avoir la biologie et le développement. On peut notamment citer l’exemple de l’encapsulation où les classes définissent des méthodes et des propriétés privées et les fonctions de la cellule qui est interne à celle-ci. Citons également l’emprunt de gène d’une autre cellule qui peut s’apparenter à la récupération de code d’une autre personne, ou la réplication de l’ADN versus le copier/coller.
Guide pratique de lutte contre le “syndrome de l’imposteur”
Présenté par Marine GANDY. Il s’agit de nous parler de ce syndrome qui est une forme de doute maladif ou de ce qui peut s’en rapprocher le plus, la peur de l’échec.
La question que l’on peut se poser est “Est-ce qu’il vient de nous ou du contexte ?”. Voici quelques causes qui peuvent en être responsables :
- Ce que l’on attend de moi (les objectifs sont-ils réalisables ?)
- Il peut-être lié à des personnes (mauvais contexte de travail)
- Un manque de confiance en soi
- Avoir du feedback (compliment vécu comme non mérité)
Pour y remédier, il faut essayer de :
- Sortir de la comparaison/ compétition
- Travailler sur ses faiblesses
- Prioriser ses tâches au travail
- Développer d’autres compétences
- Ne pas rester seul, partager et se faire aider s’il le faut
L’échelle de Clance est un test développé pour aider les personnes à déterminer si elles ont ou non des caractéristiques du syndrome de l’imposteur.
Pour en savoir plus : Découvrez les slides du guide pratique de lutte contre le « syndrome de l’imposteur »
Du Domain-Driven-Design avec API Platform
Pour commencer, API Platform est une application RAD (Rapid Application Development) c’est-à-dire qu’il est très facile et rapide de faire une API grâce à cet outil.
Mathias ARLAUD et Robin CHALAS nous expliquent les différentes customisations qu’ils ont effectuées pour faire du DDD avec API Platform et ainsi simplifier le besoin métier.
Pour ce faire, ils sont partis d’une architecture hexagonale en couches :
- une partie Application pour les DTO (Data Transfert Object), les services applicatifs, les commandes, etc.
- une partie Domain où se trouve notre logique métier, nos repositories, etc.
- une partie Infrastructure qui est la seule à communiquer avec le code des différentes librairies dans les vendors.
On peut citer par exemple, que pour faire du DDD, ils ont utilisé le pattern CQRS, désactivé les providers d’API Platform pour utiliser uniquement les leurs et prendre la main sur leur logique métier, et utilisé la configuration doctrine en xml et non en annotation.
Prochainement, il y aura une nouvelle librairie pour faire la même chose assez facilement.
Accessibilité & SEO : et si on relevait le niveau ?
Le but de l’accessibilité (pour les humains) est de rendre des contenus plus accessibles afin qu’ils bénéficient à beaucoup plus de monde, notamment aux personnes se trouvant en situation de handicap.
Le but du SEO (pour les robots) est l’optimisation des pages Web pour les robots d’indexation.
Anne-Laure De BOISSIEU et Amélie DEFRANCE nous ont présenté le top 3 des fausses bonnes idées :
- le focus invisible : il est utile pour la navigation clavier
- le statut tricolore pour savoir si un utilisateur est connecté ou non : il peut poser problème pour des personnes atteintes de daltonisme ou les lecteurs d’écran. Il faut donc rajouter du texte en plus de la pastille de couleur
- les boutons mystères (icônes faisant référence à des actions) : il faut là aussi rajouter du texte pour que chaque icône utilisée soit accessible
Et voici aussi un top des horreurs en SEO (#SEOHorrorStories) :
- crawl du site bloqué par erreur
- site de préprod ou de test accessible aux robots d’indexation
- page du site mal indexée
- site disponible sous plusieurs versions
Pour finir, pour ceux qui utilisent Symfony, il existe le bundle Accesseo pour améliorer la qualité des sites.
Sous représentation des femmes en sciences et en informatique : comment y remédier ?
Actuellement, seulement 17 % de femmes sont dans des filières technologiques et les causes principales de cette sous-représentation sont les normes sociales et les stéréotypes de genre.
Pour montrer cette inégalité, on peut citer l’expérimentation de Spencer qui montre la différence de réussite entre les hommes et les femmes face à un examen de mathématiques sous différentes conditions, c’est à dire en activant ou non les stéréotypes.
Les conséquences sont :
- un effet néfaste sur la confiance en soi
- le choix de l’orientation et des carrières qui joue un rôle principal dans la sous-représentation des femmes dans les filières technologiques. En effet, les stéréotypes affectent durablement l’intérêt pour les matières connotées masculines
- des inégalités sur la rémunération sur le marché du travail
Il existe différentes actions efficaces qui permettent de faire baisser cette tendance :
- mettre les élèves en contact des sciences et de l’informatique le plus tôt possible
- promouvoir une image plus inclusive pour exposer les étudiants à un rôle-modèle, c’est-à-dire obtenir des témoignages de femmes scientifiques permet une cassure sur le stéréotype
Des tests unitaires pour nos règles de conception
Il se trouve que dans chaque projet, il peut y avoir certaines conventions de codage que l’on veut voir respectées, par exemple que nos controllers soient finaux ou qu’ils soient suffixés par “Controller”. Ceci a pour but d’éviter la redondance des explications à chaque nouvel intervenant sur un projet.
Pour ce faire, on peut implémenter des règles avec PHPStan qui est un outil d’analyse statique. Mais Frédéric BOUCHERY nous a montré qu’il est possible de le faire aussi avec PHPUnit, et ce, grâce à son outil Analyzer qui permet d’analyser certaines parties du code dans différents dossiers. Grâce à cet outil, il peut tester les mêmes règles implémentées avec PHPStan.
Analyzer pourra lui aussi être accessible dans le futur pour tester nos conventions de codage avec PHPUnit.
Pour en savoir plus : Découvrez les slides des tests unitaires pour nos règles de conception
L’architecture ESA : le futur des API web
Kévin Dunglas nous présente un nouveau patron d’architecture qui est ESA (Edge Side APIs). Ce patron a pour avantage d’être performant, évolutif et fiable. Ceci est dû au fait que les ressources servies par l’API sont pré-construites, les documents JSON statiques qui représentent les différentes ressources sont stockés à la périphérie du réseau dans un CDN et les réponses générées sont elles aussi à la périphérie près de la source de donnée (edge computing).
Pour en savoir plus : Découvrez les slides de l’architecture ESA : le futur des API Web
Les Design Pattern racontés aux enfants
Vincent LAURIER nous a présenté son livre atypique “Solid, tiens toi bien !” qui a pour objectif d’expliquer le plus simplement possible les Design Pattern et de nous donner des moyens mnémotechniques sur les 11 patrons comportementaux (Itérateur, Commande, Stratégie, …).
Ce livre est fourni avec des exemples de code en PHP et des diagrammes UML pour faciliter la compréhension.
Le livre existe en français et en anglais. Si vous souhaitez l’obtenir : livre de Vincent LAURIER.
Comment sauver la planète en ne faisant rien
Tout d’abord, pour contextualiser, voici deux études pour nous sensibiliser sur l’environnement :
- le dernier rapport du GIEC qui alarme sur le réchauffement climatique et les souffrances humaines liées à celles-ci
- le rapport Maedows qui alarme lui sur la croissance démographique et la limite des ressources
Pour le numérique, c’est 8 % d’émission de gaz à effet de serre par an.
Cette consommation est surtout dûe aux différents terminaux (téléphone portable, tablette, montre connectée, gps, etc.) qui nécessitent un recyclage très difficile à cause de leur taille miniature et des matières premières extrêmement difficiles à extraire.
Celui-ci a donc un fort impact sur le réchauffement climatique et la biodiversité. Mais cette production intensive a aussi des répercutions sur la population, notamment sur le travail des enfants dans l’extraction des mines (40 000 à 50 000 enfants y travaillent en République Démocratique du Congo).
Pour pallier ces problèmes environnementaux, il faut, par exemple, allonger la durée des équipements et réduire la quantité de ressources nécessaires au fonctionnement d’un service.
De notre côté, en tant que développeur, nous ne devrions coder que si le besoin utilisateur est fondamental, éviter les usines à gaz, faire des pages les plus simples possibles, ne pas utiliser les pop-ups pour éviter la perte d’utilisateurs, etc. Il faut donc une conception sans gaspillage.
Pour conclure, à l’avenir il faudrait vraiment se poser ces trois questions avant de faire le quelconque développement d’une fonctionnalité :
- Est-ce utile ?
- Est-ce accessible ?
- Est-ce durable ?
Les exceptions : le trou dans la raquette du typage
Baptiste LANGLADE nous a montré comment gérer les cas d’erreurs différemment qu’en lançant une exception ou alors en retournant null pour gérer les erreurs.
Pour ce faire, il nous a fait la démonstration de l’utilisation du pattern Monad qui est un ensemble de sous-classes (Maybe, Either, IO, …) mais non fourni par défaut avec PHP.
Conclusion
Pour conclure, comme l’a si bien dit le slogan du forum PHP de cette année, ce fut le temps des retrouvailles car, c’est un lieu propice aux échanges pour la communauté de PHP.
Ce forum permet bien sûr d’en apprendre davantage sur les nouveautés qui se font tout autour de PHP, du framework Symfony et sans compter les différents retours d’expériences.
Le point marquant, pour ma part, a été la sensibilisation à l’impact du numérique sur l’environnement, car c’est un point dont nous devons tous prendre conscience afin d’en connaître les différentes conséquences.
En dernier point, je dirais que j’en ai appris plus sur moi même, notamment grâce à Marine GANDY sur le syndrôme de l’imposteur dont je ne connaissais pas l’existence.