Après une participation à distance aux AFUP Day de Tours et de Toulouse, l’Agence Dn’D s’est rendue au Forum PHP 2021 à Paris pour son grand retour en physique ! Nous avons pu déceler sous les masques la joie de chacun de se retrouver enfin tous ensemble pour cette nouvelle édition.
Cette année nous a offert des conférences tout aussi intéressantes que diversifiées. À travers cet article de retour, nous vous proposons de revenir sur celles qui ont retenu notre attention !
“N’ayez pas peur de refactoriser”
Cette conférence, présentée par Guillaume Loulier (Développeur PHP/Symfony), aborde le sujet complexe que peut être la refactorisation de code. Plusieurs questions se posent avant de pouvoir commencer une refactorisation :
-
- Est-elle nécessaire si aucun problème n’est rencontré ?
- Combien cela va-t-il coûter en temps et en argent ?
- Quels vont en être les gains ?
Afin d’améliorer et d’automatiser une partie de la refactorisation, il est possible d’appliquer le principe RIPP. Les lettres qui composent l’acronyme “RIPP” correspondent à Rector, Infection, PHPStan et Psalm. Ce concept permet une automatisation du process (= le “Continuous Refactoring”), à travers différentes étapes cycliques :
__
Chacune de ces étapes peut être rattachée à un outil :
-
- Analyse architecture : Deptrac / PHPat / Arkitect
- Unit tests + mutation testing : Infection
- Static analysis : PHPStan / Psalm
- Performance profiling: Blackfire
- Security : Snyk / Symfony CLI
- Refactoring : Rector
- Tests E2E : Cypress / Behat
- CI / GIT : lancement des tâches en CI ou via les hooks GIT en local
- RIPP : automatisation des étapes précédentes
La mise en place d’une telle stratégie va permettre de gérer l’évolution du projet et le cycle de développement, tout en mettant en avant la qualité du code et l’architecture ainsi que la correction de bugs.
“Vers la sobriété numérique”
François Zaninotto (Fondateur et CEO de Marmelab) met en lumière les émissions de CO2, leurs causes, mais aussi comment améliorer la situation !
Saviez-vous qu’aujourd’hui dans le numérique, nous consommons actuellement 4% des émissions ? Plusieurs faits sont à constater :
-
- Nous émettons 8% de CO2 en plus chaque année,
- Nous dépasserons les émissions automobiles en 2025,
- Nous sommes sur une courbe exponentielle,
- Nous émettons autant de CO2 que le secteur aérien.
Voici quelques chiffres en comparaison :
-
- Le secteur bâtiment représente 6%,
- Le secteur du transport représente 14%,
- L’industrie représente 21%,
- L’agriculture représente 24%,
- L’énergie représente 25%.
François s’est alors posé une question : comment mesurer les émissions de CO2 d’un site web ? Le constat est qu’aucun outil du marché ne dispose d’une logique entièrement dédiée à les calculer de façon spécifique.
Prenons quelques exemples :
-
- websitecarbon.com : le calcul est fait avec une constante qui se base sur aucun élément logique,
- Plugin chrome (développé par GreenIT-Analysis) : une page vide émet entre 1 et 3 grammes de CO2, ce qui n’a pas de sens,
Les changements dans le code font augmenter les émissions carbone tandis que d’autres le font baisser. Des calculateurs en ligne sont disponibles tel que GreenFrame ce qui permet, par exemple, une utilisation dans une CI via leur version entreprise !
Il est nécessaire d’optimiser l’aspect “client” avant que des modifications côté serveur ne soient perceptibles.
Pour réduire les émissions, commençons par l’ordre suivant :
-
- Écran,
- Navigateur,
- Réseau / serveur.
Quelques points importants sont à noter :
-
- Les vidéos déployées au sein des sites web représentent 80% des émissions de CO2,
- Une étude menée en 2010 démontre que 50% des fonctionnalités ne sont pas utilisées sur un site web,
- Les animations et l’UI d’un site web émettent à peu près la même quantité de CO2,
- Il est judicieux de conserver des équipements compatibles avec les vieux appareils pour encourager les utilisateurs à ne pas forcément changer de hardware,
- Les serveurs nouvelle génération consomment moins.
De nos jours, il existe le principe d’“éco-conception”, qui consiste à optimiser l’ensemble des cycles d’un projet dès la phase d’initialisation. En tant que développeur, nous pouvons notamment :
-
- Réduire les interactions, réaliser plus de tâches côté serveur, réduire le parcours utilisateur,
- Réduire les tags afin de diminuer la consommation de CO2.
Le HTTP2 apporte également une aide supplémentaire afin de limiter l’impact environnemental des pages (néanmoins, le fait de réduire le nombre de requêtes d’une page permet également d’y parvenir). Le CDN pourrait être une bonne idée, mais nous ne savons pas encore si la consommation du CDN lui-même n’est pas plus coûteuse.
Il existe plusieurs solutions à la portée de tous :
-
- Le télétravail permet de diminuer l’impact sur la consommation de CO2.
- Profiler nos pages permettra de trouver des points de blocage pour réduire notre consommation.
- Faire du “offline-first” permettrait grandement de réduire l’impact de CO2.
- La blockchain et le deep-learning consomment énormément et doivent être évités.
- Sur Azure et Google Cloud, vous pouvez mesurer votre consommation de CO2.
- Le Cloud permet d’économiser 30 à 50% de CO2. Il faut donc privilégier son utilisation lorsque vous en avez la possibilité !
- Choisir un hébergeur vert. Par exemple, sur AWS, la région de Paris est plus “green” que Frankfurt.
De plus, il est important de prendre du recul par rapport aux résultats fréquemment publiés par “The Green Web Foundation”. Pour rappel, “The Green Web Fondation” est une organisation active à but non-lucratif qui s’efforce d’apporter une contribution significative à la création d’un Internet plus durable, respectueux de l’environnement et fonctionnant avec des énergies renouvelables. Les résultats publiés par TGWF se basent sur les déclarations des hébergeurs, ce qui ne représente pas une valeur fiable à 100%.
Cependant, l’avenir se précise : une loi est en cours et sortira en 2025 afin de nous contraindre à mieux maîtriser notre consommation !
“Synchroniser ses applications plus rapidement avec du low-code”
Nous avons déjà fait face à des projets comportant beaucoup de flux, quelquefois même des flux non prévus, non anticipés, ce qui peut très vite poser problème quant au bon fonctionnement de la production. Afin de pallier cette problématique, est-ce qu’un ETL (= Extract-Transform-Load) peut être la solution ? C’est ce que nous explique Grégory Planchat dans cette conférence.
Un ETL permet de faire transiter des informations d’une source de données vers une autre en lui appliquant une transformation si nécessaire. Cette logique d’étape « Extraire, Transformer, Charger » fait partie de ce que nous pouvons appeler un pipeline. L’utilisation d’une telle solution apporte plusieurs avantages :
-
- Remontée et gestion des erreurs grâces aux logs,
- Suivre l’état d’exécution afin de savoir où en est le processus en cours,
- Gestion des rejets afin de pouvoir les traiter de nouveau si nécessaire.
Il existe actuellement des solutions permettant d’implémenter cette logique :
-
- flow-php/etl
- marquine/php-etl
- mizaplace/php-etl (fork du précédent)
- akeneo/batch-bundle
- bitexpert/etcetera
Cependant celles-ci vont également comporter quelques points négatifs :
-
- Gestion des mapping qui peuvent représenter beaucoup de changement de données, de configuration et de fichiers,
- Gestion des fuites mémoire selon la volumétrie de données.
Certaines applications connues telles que Talend ou encore Pentaho nécessitent des connaissances en JavaScript, ce qui constitue un investissement supplémentaire. C’est pourquoi une solution a été développée en PHP pour répondre à toutes ces problématiques : Gyroscops. Cette solution présente les avantages d’être moins complexe et plus flexible. L’équipe qui est derrière ce projet travaille sur une version composée d’une interface en Drag & Drop afin de réduire la quantité de code à écrire pour l’utiliser en vue de passer vers une solution dite “low-code”.
Conclusion
Cette édition du Forum PHP 2021 fut riche en conférences, autant instructives et passionnantes les unes que les autres. Un grand merci aux organisateurs, aux speakers et aux participants. C’est avec beaucoup d’impatience que nous attendons les prochaines éditions de cet évènement devenu incontournable dans l’écosystème PHP !
Vous ne maîtrisez pas encore le pouvoir de duplication et n’avez pas pu assister à toutes les conférences ? Pas de soucis, les autres conférences de l’événement sont disponibles en replay sur la chaîne YouTube de l’AFUP ainsi que l’ensemble des présentations sur le site de l’AFUP !
Vous avez un projet de développement E-Commerce ?
Spécialisé dans le E-Commerce, Dn’D accorde une attention particulière aux meilleures pratiques de développement technologique. Grâce à nos équipes certifiées sur des solutions reconnues telles que Magento ou encore OroCommerce, nous vous accompagnons dans le conseil, la conception, la maintenance de vos sites E-Commerce B2C et B2B. N’hésitez pas à nous contacter via le formulaire ci-dessous !