Comment résoudre les divergences entre & # 8220; StyleCop C # style & # 8221; et & # 8220; Directives de conception de structure C # style & # 8221 ;?

StackOverflow https://stackoverflow.com/questions/426622

Question

Après avoir parcouru l’annexe A, "Conventions de style de codage C #". du grand livre " Framework Design Guidelines " (2ème édition de novembre 2008), je ne comprends pas très bien quel style de codage Microsoft utilise en interne / recommande.

L'entrée de blog Un bref historique De style C # :

  

En fait, les différences entre le & style; StyleCop " et le style "Framework Design Guidelines". sont relativement mineurs

À mon avis, les différences sont assez prononcées. StyleCop indique que l'accolade d'ouverture doit figurer sur une ligne distincte, tandis que les directives de conception du cadre indiquent qu'elle devrait l'être après la déclaration d'ouverture. StyleCop indique que tous les mots-clés doivent être suivis d'un espace, tandis que les directives de conception du cadre indiquent qu'il faut "supprimer tous les espaces" (même autour des opérateurs binaires).

Je trouve cette règle du livre Framework Design Guidelines particulièrement ironique (page 366, 6ème règle à partir du haut):

  

Ne pas utiliser les espaces avant les instructions de contrôle de flux

Right: while(x==y)
Wrong: while (x == y)

Cela indique explicitement que le style StyleCop est incorrect (espace après le mot-clé while, espaces avant et après l'opérateur binaire d'égalité).

En fin de compte, le code mis en forme avec le style StyleCop a une "sensation" différente. à partir de celui formaté en utilisant le style Framework Design Guidelines. En suivant le style des directives de conception du framework, il faudrait désactiver un ensemble de règles (ET il n’existe aucune règle permettant de vérifier le respect du style des directives de la conception du framework ...).

Quelqu'un pourrait-il (des initiés MSFT peut-être?) faire la lumière sur cette divergence?

Comment votre équipe gère-t-elle cela? Vous suivez StyleCop? Directives de conception du cadre? Ignorer complètement le style? Cuire votre propre style?

Était-ce utile?

La solution

Sur un blog que j'ai lu à ce sujet (je n'arrive pas à trouver l'url), il a été déclaré: les directives du framework sont basées et ont évolué à partir des directives C ++ (ce sont tous des développeurs chevronnés en C ++), tandis que les directives fournies par stylecop sont plus modernes que les nouvelles directives de C # ... Les deux vont bien, prenez une décision vous-même ... J'utilise personnellement les modèles StyleCop

Autres conseils

Cet article de l’équipe Stylecop explique exactement ce que vous demandez, je pense. http://blogs.msdn.com /sourceanalysis/archive/2008/05/25/a-difference-of-style.aspx

Et pour répondre à la deuxième partie de votre question, notre équipe vient de commencer à utiliser StyleCop en utilisant toutes les règles (certaines personnes choisissent celles qu’elles doivent utiliser). La seule chose que je n'aime pas, c'est le temps supplémentaire que cela prend, mais utiliser un outil comme StyleCopForResharper accélère considérablement les choses. J'étais très ennuyé quand les gens écrivaient du code qui avait une apparence différente de celle que je l'aurais écrit, mais maintenant que nous utilisons StyleCop, le code de tout le monde est identique. Plus besoin de se mordre la lèvre à propos de choses agaçantes que les gens font

Nous utilisons StyleCop pour tout notre code et, mis à part quelques petits défauts mineurs, la plupart de ses normes conduisent au code le plus lisible. Un grand nombre de ses normes ont fait l’objet de vives discussions au sein de Microsoft et ont suscité des réactions de la part de la communauté. Même s’il n’est pas prévu que tout le monde sera d’accord avec tout, il s’agit probablement du meilleur «standard» qui existe (en particulier parce qu’il permet validation et correction automatique avec le plugin StyleCop for ReSharper).

S'il y a des choses avec lesquelles vous êtes tout à fait en désaccord, Jason Allor, qui entretient l'outil, est tout à fait ouvert aux suggestions concernant certaines choses, par exemple avec les propriétés automatiques que StyleCop avait à l'origine insisté sur ...

public int Prop
{
    get;
    set;
}

... mais nous avons lancé une demande de modification afin d'autoriser les propriétés sur une seule ligne (c'est-à-dire tout sur une seule ligne) car elles ne sont pas moins lisibles et prennent moins de place. Il a apporté ce changement en quelques jours.

Vous prenez une décision. Si vous aimez certaines parties de l’une et d’autres, écrivez votre propre guide de style. Si vous en préférez un, choisissez-le.

La chose essentielle à faire est de choisir un style. il n'y a aucun moyen d'évaluer l'un sur l'autre d'une manière quantitative rigoureuse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top