StyleCop和/或一般风格指南?

时间:2015-02-03 04:22:23

标签: c# coding-style stylecop

类似问题:Styleguide for C#StyleCop: a complete document

好的,所以我在我的工作场所寻找某种风格控制来处理我们在C#中开发的应用程序。我最初只是计划制作一个风格指南(通过收集一些现有的风格指南并从中挑选合适的部分),但是看起来StyleCop可能是一个很好的补充或替代风格指南。

所以,我的问题是:

  1. 样式指南和/或StyleCop存在哪些潜在问题 我可能会遇到什么?
  2. 如果我使用StyleCop,我希望样式指南有多相似?我是否想尝试阻止/限制两种方法之间的任何差异?我问因为 如果StyleCop没有强制执行,那么它可能会被忽略(或者这不是一个太大的问题吗?)。
  3. 如果我使用StyleCop,创建样式指南是否值得花费时间和精力?
  4. StyleCop还有其他值得研究的选择吗? (例如,一个非常好的替代品 可用性/定制和"可以"被认为是足够的 自己的)。
  5. 编辑:只是一点点背景,我的工作场所有一个"软件部门"那真的只是现在才形成。有3个全职c#开发人员,3个可能触摸/使用/改变c#代码的开发人员,一些BA&没有官方测试人员。

3 个答案:

答案 0 :(得分:13)

在使用/维护/强制执行样式指南的团队之后,然后在使用StyleCop的团队中,我的建议是专门使用StyleCop。这有几个原因:

  1. 编译时可执行。当谈到像风格一样顽固的东西时,这是一个巨大的优势。使用样式手册时,总是有灰色区域,但是没有任何编译器错误。这减少了&#34的样式参数;这是错误的" /"不,它不是"#34; to"我们应该选择哪个",这通常是一个更民事的论点。

  2. 如果你创造了自己的风格,那么某人(或所有人)将需要成为人类风格的警察,这是一个相当悲惨的工作。开发人员(根据我的经验)往往不喜欢人们进行风格调整"他们提交的代码,并且在被告知使代码符合样式时更不喜欢。这也是耗时的,因为在代码审查期间要审查的是另一件事(你正在做这些,对吧?)。

  3. StyleCop带有一套相当不错的默认规则,使用这些规则可以让你匹配大多数其他C#代码库。当我使用我们自己的内部样式手册时,所有开源代码看起来都很外观,因为我们使用了注释标题,大写参数,一些匈牙利符号等等。但是当我使用默认规则集移动到StyleCop强制样式时,所有内容看起来很熟悉!

  4. 创建您的风格意味着您将花费大量时间重新发明轮子,然后在出现边缘情况和参数时保持该轮子。这是一项非零工作量,可以咀嚼很多时间;根据我的经验,开发人员总是辩论代码风格。

  5. 如果您不喜欢某些默认设置或需要添加StyleCop应忽略的缩写,它有一个不错的编辑器来配置您的规则集。

  6. 您可以编写自己的规则或使用其他人发布的规则。例如,我们团队中的一些人讨厌尾随空格,所以我加入these rules来强制执行。

  7. 就替代方案而言,我不知道任何与StyleCop一样无缝的东西。我应该注意,我只使用它与Resharper / Visual Studio一起使用,所以如果你有不同的环境,那么你的里程可能会有所不同。

答案 1 :(得分:2)

仅供参考,新的StyleCop分析仪NuGet包是对事物的重大改进。您现在可以通过编辑项目的规则集(属性 - >代码分析)来手工挑选您的StyleCop规则(或仅使用默认选择)。

我刚刚发现他们甚至包括了三个"替代品"跟随黑暗面的团队的规则......: - )

SX1101 - 使用' 为本地电话加前缀。'

SX1309 - 字段名称必须以下划线开头

SX1309S - 静态字段名称必须以下划线开头

答案 2 :(得分:1)

你在工作场所可以做的最好的事情就是教导:

  1. 在代码体中识别现有的样式模式。
  2. 关注您对该代码段进行更改的现有样式模式。
  3. 无论您正在进行哪个项目,这种做法都会导致提交样式问题的总体提交率最低。它还需要在您的样式指南中进行最少量的解释。

    通过这种方式,您可以专注于通过查看单个文件而不易推断的主题,例如跨代码库使用的命名约定,有效的线程模型以及高模块之间的交互水平。