Ecrivez-vous des tests longs ?

Je préfère

  • Les tests courts

    Votes: 0 0.0%
  • Les tests longs

    Votes: 0 0.0%

  • Total voters
    0
WRInaute passionné
Bonjour,

Un exemple vaut mieux qu'un long discours.
Par convention, écrivez-vous

Code:
if (maFonction()) { ... }

ou

Code:
if (maFonction() == TRUE) { ... }

Et pourquoi ?
 
Nouveau WRInaute
En général, je préfère les tests longs pour plus de lisibilité et de clarté :)

Par contre dans le cas d'un test "simple" comme celui de ton exemple, je préférerais un test court car finalement plus lisible à condition que le nom de la fonction soit explicite comme le fait qu'elle retourne un booléen.

En gros:
fonction retournant explicitement un booléen (isXXX()) -> test court
fonction retournant un booléen sans que ce soit sa fonction première (action bien déroulée par exemple) -> test long
 
WRInaute discret
J'ai voté court car j'aime bien les formules synthétiques pour des inclusions simples du type
Code:
<?php echo ($mavar!=""?"c'est pas vide":"c'est vide");?>
mais certains tests particulièrement longs et/ou complexes ne peuvent se contenter de cela.
 
WRInaute passionné
Personnellement que des tests long, c'est beaucoup plus rapide à traiter et j'utilise des "vrais" tests (3 égals, et pas 2).

Code:
var_dump(maFonction()); /// retourne int(100)
if (maFonction()) {
ok
if (maFonction() === true) {
pas ok
C'est plus long à débuguer quand ça marche pas, mais le code est nettement plus propre et sécuriser: on sait réellement ce qui sort.
 
WRInaute passionné
@dolmenhir
Ok pour l'opérateur ternaire mais à titre exceptionnel.

@Julia41
Oui c'est plus propre et plus sûr, ma seule réticence sur ce test est qu'il est plus gourmand en traitement (valeur + type).
Et aussi que les types et PHP c'est pas ce qui ce fait de mieux donc c'est vrai que paradoxalement ça augmente les risques d'erreurs.

J'ai voté long également uniquement pour la lisibilité.
 
WRInaute passionné
dorian53 a dit:
@Julia41
Oui c'est plus propre et plus sûr, ma seule réticence sur ce test est qu'il est plus gourmand en traitement (valeur + type).
Et aussi que les types et PHP c'est pas ce qui ce fait de mieux donc c'est vrai que paradoxalement ça augmente les risques d'erreurs.
Légende urbaine qu'il prends plus de temps :
Si c'est un "if === true" il y a moins de vérifications à faire.
Pour un "if === false" dès qu'il ne match pas, il s'arrête, c'est donc nettement plus rapide.
 
WRInaute passionné
en effet pour un "basique" true false (et encore)
là où il y a un énorme gain c'est pour le :
if ($a === '3');
et
if ($a == 3);

Là j'ai un bon gain.
 
Discussions similaires
Haut