你如何解决“ StyleCop C#风格”之间的差异?和#8220;框架设计指南C#style”?

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

在完成附录A“C#编码风格约定”之后。伟大的书籍“框架设计指南” (自2008年11月起的第2版),我对微软在内部/推荐使用的编码风格感到困惑。

博客文章简史C#Style 声称:

  

事实上,“StyleCop风格”之间的差异。和“框架设计指南风格”是相对较小的

正如我所看到的,差异非常明显。 StyleCop说开放式支架应该在一个单独的线上,框架设计指南说它应该在开幕式之后。 StyleCop表示所有关键字后面都有一个空格,框架设计指南说“摆脱所有空间”(甚至围绕二元运算符)。

我从“框架设计指南”一书中发现这条规则特别具有讽刺意义(第366页,第6条规则):

  

不要在流控制语句之前使用空格

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

这明确说明StyleCop样式是错误(while关键字之后的空格,等于二元运算符之前和之后的空格)。

最后,使用StyleCop风格格式化的代码具有完全不同的“感觉”。来自使用Framework Design Guidelines样式格式化的样式。通过遵循框架设计指南样式,必须禁用一堆规则(并且没有规则检查是否遵守框架设计指南样式......)。

有人(MSFT内部人员可能吗?)对这种分歧有所了解吗?

您的团队如何应对此问题?关注StyleCop?框架设计指南?完全忽略风格?烘焙自己的风格?

有帮助吗?

解决方案

在博客上我读到了这个(我似乎无法找到网址)它被声明: 框架指南基于并从C ++指南(它们都是经验丰富的C ++开发人员)发展而来,而指南stylecop提供的是更现代的新C#唯一指导... 两者都很好,自己做决定......我个人使用StyleCop的

其他提示

这个由stylecop团队撰写的文章准确地解释了你的想法。 http://blogs.msdn.com /sourceanalysis/archive/2008/05/25/a-difference-of-style.aspx

为了回答你问题的第二部分,我们的团队刚开始使用StyleCop使用所有规则(有些人选择并选择使用哪些规则)。我唯一不喜欢的是需要额外的时间,但使用StyleCopForResharper之类的工具会让它变得更快。当人们编写的代码与我编写的代码看起来不同时,我常常感到非常生气,但现在我们使用StyleCop,每个人的代码看起来都相同。再也不会因为人们所做的令人讨厌的事而咬紧嘴唇

我们将StyleCop用于我们的所有代码,除了一些小问题之外,我认为大部分标准都是最易读的代码。微软已经对其很多标准进行了大量讨论,并得到了社区的反馈,虽然预计每个人都不会同意所有内容,但它可能是最好的“标准”(特别是因为它允许自动化)使用StyleCop for ReSharper插件进行验证和自动校正。

如果有任何你强烈不同意的事情,维护该工具的Jason Allor对某些事情的建议非常开放,例如StyleCop最初坚持的自动属性......

public int Prop
{
    get;
    set;
}

...但是我们提出了一个更改请求,允许单行属性(即一行上的所有内容),因为它的可读性不低,占用的空间更少。他在几天内做出了这个改变。

你做出决定。如果您喜欢其中一部分和另一部分,请编写自己的样式指南。如果你喜欢一个比另一个好,那就选择它。

要做的就是选择一种风格;没有办法以任何严格的定量方式对另一个进行评估。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top