Bah déja, des perfs problématiques peuvent être un bug. Si ton logiciel qui gère l'ESP d'une voiture réagit quand la bagnole est déja dans le fossé, c'est une sorte de bug.
Ensuite, je ne suis même pas d'accord. Il y a des logiciels pour lesquels une certaine catégorie de bugs est largement acceptable. Typiquement, c'est le cas des logiciels de rendu: quand Latex te sort des oversize box et te fait dépasser le texte dans la marge, c'est un bug; quand lilypond to sort un truc bof bof, c'est un bug (le rendu s'améliore d'ailleurs de version en version). En tout cas, ce genre de dysfonctionnement est inhérent à la complexité de certaines tâches, et c'est acceptable d'en avoir un certain nombre par rapport à d'autres critères à privilégier (par exemple, le temps d'exécution, ou la clarté des algorithmes). On pourrait aussi citer l'optimisation par les compilateurs par exemple, où il y a toujours un compromis entre l'efficacité et le temps de compilation. Des heuristiques de pathfinding, qui ne te donnent pas forcément le chemin optimal, mais qui font un compromis avec les perfs. Il semble y avoir une infinité d'exemples où une tâche peut ne pas être parfaitement exécutée et où un tel compromis est acceptable.
Du coup, "minimiser les bugs" me semble être un critère parmi d'autres à optimiser, et le poids respectif de ces critères dépend du contexte.
[^] # Re: Échange avec Uncle Bob
Posté par arnaudus . En réponse au lien « Clean code » : performances lamentables. Évalué à 5. Dernière modification le 15 mars 2023 à 10:55.
Bah déja, des perfs problématiques peuvent être un bug. Si ton logiciel qui gère l'ESP d'une voiture réagit quand la bagnole est déja dans le fossé, c'est une sorte de bug.
Ensuite, je ne suis même pas d'accord. Il y a des logiciels pour lesquels une certaine catégorie de bugs est largement acceptable. Typiquement, c'est le cas des logiciels de rendu: quand Latex te sort des oversize box et te fait dépasser le texte dans la marge, c'est un bug; quand lilypond to sort un truc bof bof, c'est un bug (le rendu s'améliore d'ailleurs de version en version). En tout cas, ce genre de dysfonctionnement est inhérent à la complexité de certaines tâches, et c'est acceptable d'en avoir un certain nombre par rapport à d'autres critères à privilégier (par exemple, le temps d'exécution, ou la clarté des algorithmes). On pourrait aussi citer l'optimisation par les compilateurs par exemple, où il y a toujours un compromis entre l'efficacité et le temps de compilation. Des heuristiques de pathfinding, qui ne te donnent pas forcément le chemin optimal, mais qui font un compromis avec les perfs. Il semble y avoir une infinité d'exemples où une tâche peut ne pas être parfaitement exécutée et où un tel compromis est acceptable.
Du coup, "minimiser les bugs" me semble être un critère parmi d'autres à optimiser, et le poids respectif de ces critères dépend du contexte.