J'étais en train d'écrire une instruction if avec des noms de propriétés assez longs et je suis tombé sur ce problème.
Disons que nous avons une instruction if comme celle-ci:
if(_someViewModelNameThatIsLong.AnotherPropertyINeedToCheck == someValue &&
!_someViewModelNameThatIsLong.ThisIsABooleanPropertyThatIsImportant)
{
//Do something
}
La deuxième propriété est de type booléen et cela n'a aucun sens d'avoir la stetement comme
if(boleanValue == true)
Existe-t-il une meilleure façon de mettre l'accent sur la négation que de mettre !
en avant. Pour moi, il semble que cela peut être facilement supervisé lors de la lecture du code et peut potentiellement causer des problèmes de débogage
readability
Ivan Crojach Karačić
la source
la source
_someViewModelNameThatIsLong
if( ! something)
vsif(!something)
... && model.Prop == false)
? Personnellement je l'utilise très rarement!
, c'est trop facile à oublier.Réponses:
Et puis, dans l'objet modèle de vue
(en supposant que someValue est une chaîne et n'est pas connue par l'objet modèle)
Cela met non seulement l'accent sur le! , mais il le rend généralement plus lisible. Maintenant, dans la méthode d'appel, je peux voir une condition, qui devrait être bien nommée pour décrire la condition dans le contexte de l'objet appelant. Et dans l'objet modèle, je peux voir ce que cela signifie dans le contexte de l'objet modèle.
la source
someValue
peut devoir être un paramètre de laNeedsMeToDoSomething
méthode, selon votre situation.Mettez-le dans son propre bloc if avant d'évaluer les conditions les moins importantes. Non seulement il serait plus facile de lire sans l'encombrement des autres conditions, mais c'est aussi la première condition qu'un programmeur lira. Combinez cela avec l'idée déjà mentionnée par @scrwtp pour l'attribuer à une variable avec un nom significatif et vous obtenez:
Si vous programmez dans un langage de compilation, la plupart du temps, ces blocs imbriqués sont combinés à la fin de toute façon, tant que vous n'insérez pas de code entre les if externes et les if internes, cela ne devrait donc pas affecter les performances dans ces cas.
la source
Si vous utilisez C / C ++, le préprocesseur peut fournir une lisibilité.
la source
Je voudrais juste extraire
Dans une méthode qui renvoie cela. Si vous nommez cette méthode NotThisIsABooleanPropertyThatIsImportant, ça devrait aller.
la source