36 votes

Suggestions de codes par Resharper rendant le code moins lisible?

Tout en essayant de passer au vert, j'ai eu la suggestion suivante de Resharper.

Code d'origine:

     static public string ToNonNullString(this XmlAttribute attr)
    {
        if (attr != null)
            return attr.Value;
        else
            return string.Empty;
    }
 

Suggestion: supprimer les «autres» redondants, ce qui entraîne:

     static public string ToNonNullString(this XmlAttribute attr)
    {
        if (attr != null)
            return attr.Value;
        return string.Empty;
    }
 

Pour moi, la version suggérée semble moins lisible que l'original. La suggestion de Resharper reflète-t-elle la définition de bon code maintenable?

49voto

MrWiggles Points 6622

Techniquement, Resharper a raison de dire que le "else" n’est pas nécessaire, je préfère la version précédente, bien que son intention soit plus évidente.

Cela dit, je préfère aller avec:

 return attr != null ? attr.Value : string.Empty;
 

31voto

Jeffrey Hantin Points 19272

Ah, l'esthétique du code. Temps de guerre sainte. (canards)

J'irais avec soit un?: Expression:

 return attr != null ? attr.Value : String.Empty
 

ou inversez le if et supprimez le saut de ligne pour produire une clause de garde :

 if (attr == null) return String.Empty;

return attr.Value;
 

22voto

Andrey Shchekin Points 7740

Je pense que la nouvelle version est beaucoup mieux si vous inversez le si

 static public string ToNonNullString(this XmlAttribute attr)
{
    if (attr == null)
        return string.Empty;

    return attr.Value;
}
 

Parce que votre version originale est trop symétrique, alors que la casse nulle est un cas particulier.

La nouvelle version est plus lisible dans les termes de "que retourne-t-il la plupart du temps?".

10voto

cbp Points 9676

Je conviens que la première version de votre code est plus lisible.

J'ai trouvé que les suggestions de Resharper dans ces cas n'étaient pas toujours utiles, bien que parfois cela puisse nettoyer les choses. C'est pourquoi j'ai configuré Resharper pour afficher le changement sous forme d '"indice" plutôt que de "Suggestion". Cela rend le soulignement vert moins visible et ne sera pas mis en surbrillance dans la barre latérale droite.

8voto

petr k. Points 4890

Si vous n'aimez pas la façon dont ReSharper suggère quelque chose, il suffit de désactiver la suggestion spécifique (slash avertissement slash allusion). Il en va de même pour le style de codage, ce qui je pense est tout à fait configurable. Revendiquant ReSharper inutilisable (en citant "je suis heureux de dire qu'il ne survive pas, personne ici ne l'utilise plus") tout simplement parce que vous ne prenez pas les 5 minutes pour savoir comment configurer il est tout simplement stupide.

Bien sûr, vous ne devriez pas laisser certains outil dicter une partie de votre style de codage, et ReSharper est PAS de faire que si vous lui dites de ne pas. C'est aussi simple que cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X