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

Legapass : comment protéger ses données privées jusque dans l’au-delà

Comment gérer les données numériques après la mort de son détenteur ? La jeune pousse…

3 jours ago

Iris, un assistant d’IA conversationnelle en langue des signes

Ivès, expert en accessibilité de la surdité, s’est associé à Sopra Steria et à IBM…

3 jours ago

GenAI : le Royaume-Uni poursuit ses investigations sur les partenariats de Microsoft et Amazon

L'Autorité de la concurrence et des marchés (CMA) a lancé la phase de recherche de…

4 jours ago

Clients de VMware : les raisons de la colère

Broadcom remplace pas moins de 168 logiciels VMware par deux grandes licences de location correspondant…

4 jours ago

Laurent Carlier – BNP Paribas Global Market : « L’IA permet de modéliser des relations plus complexes, mais il faut rester prudent »

La banque d’investissement utilise l'IA pour proposer des stratégies individualisées, en termes de rendement et…

4 jours ago

Open Compute Project : les datacenters partagent des bonnes pratiques pour l’environnement

OVHCloud partage ses efforts environnementaux au sommet de l’Open Compute Project qui se tient à…

5 jours ago