DoorDash automatise le nettoyage des indicateurs dans le code
En termes simples
Les indicateurs de fonctionnalité permettent aux équipes logicielles d’activer ou de désactiver des fonctions. Quand une fonctionnalité est entièrement déployée, son ancien indicateur et le code qui l’entoure peuvent rester en place.
Les supprimer peut demander du travail, surtout quand l’indicateur est relié à du code réparti dans plusieurs fichiers. L’article présente un système de DoorDash qui vérifie la valeur réelle de l’indicateur, demande à un ingénieur de la confirmer, puis modifie le code, met à jour les tests et prépare une pull request.
Sur 50 nettoyages récents dans des dépôts Kotlin, 45 pull requests ont été acceptées telles quelles ou après de petites corrections ; cinq ont nécessité des corrections importantes.
La recherche
En mai 2026, DoorDash signalait 1 659 indicateurs de fonctionnalité obsolètes dans environ 623 dépôts. Le code associé à un indicateur peut être réparti entre plusieurs fichiers, et sa valeur en production peut différer de celle définie par défaut dans le code. Comment supprimer le code lié tout en utilisant la bonne valeur ?
Un système de DoorDash vérifie la valeur réelle des indicateurs, obtient la confirmation d’un ingénieur, puis coordonne les modifications du code et des tests pour préparer des pull requests de nettoyage.
Le système de DoorDash vérifie la valeur réelle en production d’un indicateur obsolète, recherche ses références dans le code, puis demande à un ingénieur de confirmer la valeur proposée avant toute modification. Des agents de suppression mettent ensuite à jour le code et les tests, vérifient leurs changements et préparent des pull requests.
Cette confirmation est importante, car la valeur utilisée en production peut différer de la valeur par défaut inscrite dans le code.
Dans leur examen de 50 suppressions récentes dans des dépôts Kotlin de DoorDash, les auteurs ont constaté que 45 pull requests avaient été acceptées immédiatement ou après de petites corrections, tandis que 5 avaient nécessité des corrections importantes par un ingénieur.
Ils ont aussi constaté que 22 des 26 cas classés ensuite comme complexes avaient produit des pull requests exploitables. Ces résultats montrent que le système a traité de nombreux cas de l’évaluation, même si les cas complexes ont plus souvent nécessité une révision ou une intervention.
L’évaluation a porté sur 50 suppressions récentes dans des dépôts Kotlin de DoorDash, chaque indicateur ayant été traité une seule fois.
Les auteurs précisent que de nouvelles exécutions pourraient produire d’autres résultats et que ceux-ci ne sont pas nécessairement transposables à d’autres langages, systèmes d’indicateurs ou bases de code.
Analyse
Détails
- Auteurs de l’article original
- Atharv Chandratre, Jai Datar
- Soumis à arXiv
- Licence
- arXiv non-exclusive