Pour gérer vos consentements :
Categories: Green IT

AXA expose sa démarche de « green coding »

Lors d’une itération, vaut-il mieux utiliser $i++ ou ++$i ? D’un point de vue « green coding », la deuxième option est plus efficace : elle ne génère pas de variable temporaire.

Cette règle figure, comme une quarantaine d’autres, dans la matrice de référence d’ecoCode.

À la genèse de ce projet, il y a une entreprise aquitaine (Snapp, agence de développement d’applications mobiles), en association avec le laboratoire informatique de l’université de Pau et des pays de l’Adour.

À l’arrivée, il y a une extension pour le logiciel SonarQube (qualimétrie du code). Elle implémente les règles en question sous la forme d’analyseurs statiques. Cinq langages sont pour le moment couverts : Java, PHP, JavaScript, Python et Rust.

ecoCode est un chantier en cours. Le niveau d’intégration de la « règle du $i++/++$i » l’illustre : c’est fait pour Java et PHP, mais pas encore pour JavaScript. Autre exemple : l’usage déconseillé de try-catch-finally pour gérer les exceptions (O.K. sur PHP ; à venir sur Java, JavaScript et Rust).

ecoCode dans la boîte à outils d’AXA

Chez AXA, on préfère try-with-resources à try-catch-finally. L’équipe technique vient d’en faire part dans un billet censé inaugurer une « série green coding ». Ayant prévu de consacrer un article aux outils qui soutiennent ses démarches, elle ne les aborde pour le moment qu’en substance. On sait toutefois qu’ecoCode en est un pilier, pour l’analyse pendant le développement.

Lors de l’exécution, VisualVM, notamment, entre en jeu. Il est dédié aux applications Java… et cela va dans le sens du billet d’AXA : l’équipe technique y donne des exemples de « green coding » dans ce langage. Entre autres :

– Pour un calcul de factorielle, privilégier un code itératif à un code récursif, qui n’est pas efficace avec de grandes valeurs

– Concaténer des chaînes de caractères avec la classe String Builder plutôt que directement

– Lors de l’initialisation de collections, préciser la taille au départ, pour empêcher le redimensionnement

– Pour certaines collections, utiliser les itérateurs plutôt qu’une boucle for-each

La réflexion d’AXA touche aussi à l’optimisation de l’usage des ressources. Par exemple avec le multithreading ou le traitement en flux. Elle englobe également la gestion du code en production : réduction des communications réseau, utilisation du mode économie de batterie, stratégies de déduplication et de mise en cache…

Photo d’illustration © Seventyfour – Adobe Stock

Recent Posts

IA générative : l’Autorité de la concurrence pointe de sérieux risques

Dans un avis consultatif, l'Autorité de la concurrence a identifié les risques concurrentiels liés à…

2 jours ago

OpenAI signe un accord de contenu avec Time

OpenAI signe un « partenariat de contenu stratégique » avec Time pour accéder au contenu…

2 jours ago

Atos : David Layani (Onepoint) veut sortir du capital

Au lendemain du rejet de sa proposition de restructuration, David Layani annonce sa démission du…

2 jours ago

Évaluer les LLM, un défi : le cas Hugging Face

Après un an, Hugging Face a revu les fondements de son leaderboard LLM. Quels en…

3 jours ago

Mozilla face au dilemme de la GenAI dans Firefox

Mozilla commence à expérimenter divers LLM dans Firefox, en parallèle d'autres initiatives axées sur l'intégration…

3 jours ago

VMware tente d’orienter vers VCF les déploiements pré-Broadcom

VMware met VCF à jour pour y favoriser la migration des déploiements qui, sur le…

4 jours ago