Answers:
这是有关.NET Framework版本4.0的编码标准的正式Microsoft指南。
如果您想使用1.1的旧版本,请在此处尝试。
正如他们所说,我不一定要跟在“ T”后面。但是,如果有疑问,这是开始与当前.NET框架保持一致的最佳位置,这使每个人都可以更轻松地使用它,无论他们对您的特定项目是否陌生。
可能想看看StyleCop。您甚至可以将其合并到某些构建系统中,以便样式错误会破坏构建。默认设置与MS建议的指导原则完全一致(由其他人发布)。
您还可以更改默认情况下附带的规则。
我们在办公室采用了这种方式。它是由兰斯·亨特(Lance Hunt)编写的,相当全面:
http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx
我尝试从各种来源中选择一套通用的样式。一些以前没有提到的:
除了驼峰规则,方法名称等,我正在使用以下应用程序维护编码标准。
GhostDoc-在每个方法的顶部添加一个自动生成的注释。该应用程序提供了很好的方法摘要。(自由)
http://submain.com/products/ghostdoc.aspx
Resharper-代码分析和重构 http://www.jetbrains.com/resharper/
StyleCop-作为我进入TFS之前的最后清理工作。(自由)
我讨厌既定的编码标准,它们都关心要么告诉您不要犯一些愚蠢的错误,要么告诉您如何以某种方式格式化代码。所有这些都是琐碎的。
我的意思是,它们将告诉您运算符之间应放置多少空格,如何对变量进行大小写,要使用哪些“匈牙利风格”前缀(例如_表示成员),相互冲突的建议(例如,您不能调用Cxyz类,但必须调用接口Ixyz),如何布局代码(将变量放在类的顶部还是底部)
在全局中,所有这些都是无用的。
这些标准中从未提及编写有效,可维护和可读的代码的要点。
例如:您将变量放在类的顶部还是底部?好吧,谁在乎-重要的是,如果您按功能区域将变量分组在一起。这很重要(如果您曾经在该地点看到20个变量,就会知道这一点)。
他们告诉您将大括号放在某些位置。大事了!我可以在K&R和ANSI样式括号中阅读代码,没关系。重要的是,是否所有Window类都以某种方式进行了区分(例如以Form或Dlg后缀之类),以便您可以看到哪些文件包含窗口代码,哪些是普通对象。
这样的事情比标准通常包含的次要问题要重要得多。我不知道为什么他们会这样发展,但是通常它们只是一大堆规则,阻碍了有效,高效的编码。
我的标准尝试将重点更多地放在代码和文件的组织上。我们具有某些标准,这些标准涉及在哪里可以找到文件。例如,对于非开发人员来说,可以查看我们的一个项目,并立即获取他们需要的文档文件。同样,我们尝试以与其他实际项目相似的方式来布置项目代码(请注意:在实际情况下,并非以严格禁止的方式(不一定总是适用)),并且基本上,我们尝试制定标准指南,可以根据需要进行修改。
简而言之,它们是在帮助我们共同努力,而不是总是必须遵循的一系列限制性规则。
警告:下面的实用主义 -这个问题的措词似乎引起了关于“适当的”花括号样式等的辩论。我不容忍在这种胡扯上浪费时间。
安装ReSharper,保留默认设置,按照说明进行操作。
利润-团队中的每个人都将具有与Microsoft准则相近的风格,只是在一些方面偏离了Resharper标准,这些标准反映了行业中实际上更广泛使用的(并且可以说是改进)。
您的团队花费在创建和引用一些庞大的文档或书籍上的时间越少,或者花时间讨论curly braces
其他问题的代码,他们完成的编码就越多。ReSharper将在键入时强制命名和样式。做完了 辩论结束。没什么可争论的。继续。
也就是说,阅读经典的Code Complete可以帮助他们理解编码标准背后的原理,并为有效地通过代码传达含义提供许多重要的指示,而这是标准文档或检查程序无法做到的。
如果你想升压什么ReSharper的能为你做什么,添加了StyleCop用了StyleCop ReSharper的插件。如前所述,MS准则和ReSharper默认值之间会存在一些小的冲突。我只会选择ReSharper。但是无论您采取哪种方式,只要将结果保存到ReSharper配置文件中,并在团队中共享即可。
(不,对于ReSharper而言,我不是一个小菜一碟,只是个满意的客户。除了它的许多其他功能之外,它还比任何标准文档或代码检查系统都更经济高效地处理基本样式问题-为重要的事情留有头脑)