Bonsoir,
if <expression-booleenne>
Pour la comparaison à true, quand je lis deux "experts confirmés senior" ayant chacun une opinion opposée : Je me dis que ce sont des guerres de chapelle...
Pour ma part, ma principale source de bug immédiat (i.e. avant tests), c'est l'inversion de logique :
1 2 3 4 5 6
|
if ( estBon ){
//je traite pas bon
}else{
// je traite bon
} |
Dans les deux cas (estBon) ou (estBon == true), je la ferai toujours quand je somnole... Voir l'inverse dans des conventions de codage ne me ferait pas poser ma démission, mais je rejoins Luc sur un point : Il y a d'autres guerres plus utiles (les noms parlants, limiter la conditionnelle, les imbrications, etc.)
Dommage qu'ils soient écrit si petit les PS d'Emmanuel Deloget à propos des tests de pointeurs null. Par un moment, pour des questions de refactoring (*) vers des smart pointers justement, j'ai rêvé d'un :
1 2 3 4 5
|
/* !!!n'existe pas!!! */
if ( std::is_null( pointeur ) ){
} |
... avec un comportement homogène sur tout ce qui a sémantique de pointeur (auto_ptr, shared_ptr, etc.)...
A mon avis, le vrai problème n'est pas qu'on test si le pointeur est 0 ou NULL, mais que dans le fond, qu'on ne fasse pas abstraction du fait qu'un pointeur a pour valeur une adresse (d'où les soucis quand les pointeurs sont encapsulés et qu'on doit les dés-encapsuler à coup de get).
Mais bon, on a d'autres problèmes dans la vie!
Partager