it-swarm.cn

推荐的.NET / C#编码标准?

您认为什么编码标准对.NET/C#项目很重要?可以这样处理花括号,间距和装饰。或者可能是更基本的问题,例如应避免在.NET Framework中使用哪些命名空间,配置文件的最佳做法等。

尽量避免创建简单的推论。例如,最好有一个帖子集中在花括号上。我们不需要两个就可以支持一种样式。这个想法不是为您的宠物标准投票,而是充实创建标准时应考虑的内容。

19
RationalGeek

这是.NET Framework 4.0版的正式Microsoft编码标准指南。

如果要使用1.1的旧版本,请尝试 此处

正如他们所说,我不一定要跟在“ T”后面。但是,如果有疑问,这是开始与当前.NET框架保持一致的最佳位置,这使每个人都可以更轻松地使用它,无论他们对您的特定项目是否熟悉。

29
Ryan Hayes

可能想看看 StyleCop 。您甚至可以将其合并到某些构建系统中,以便样式错误会破坏构建。默认设置与MS建议的指导原则完全一致(由其他人发布)。

您还可以更改默认情况下附带的规则。

10
Steven Evers
6
ysolik

我们在办公室采用了这种方式。它是由兰斯·亨特(Lance Hunt)撰写的,相当全面:

http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx

5
CokoBWare

FxCop 开头。它将告诉您有关现有代码中违反最佳做法的信息。

4
Victor Hurdugaci

我必须推荐SSW(一家澳大利亚咨询公司)提供的标准。

不仅是编码,而且还有项目管理等。宝贵的资源。

http://www.ssw.com.au/ssw/standards/default.aspx

2
davewasthere

方法应该简短

大多数方法应使用类中的大多数字段。

选择好你的名字。

例如阅读 清洁代码

2
Ian

除了驼峰规则,方法名称等,我正在使用以下应用程序维护编码标准。

GhostDoc-在每个方法的顶部添加一个自动生成的注释。该应用程序提供了很好的方法摘要。 (自由)

http://submain.com/products/ghostdoc.aspx

Resharper-代码分析和重构 http://www.jetbrains.com/resharper/

StyleCop-作为我进入TFS之前的最后清理工作。 (自由)

http://code.msdn.Microsoft.com/sourceanalysis

2
Nickz

我尝试从各种来源中选择一套通用的样式。一些以前没有提到的:

2
alexandrul

我讨厌既定的编码标准,它们都关心要么告诉您不要犯一些愚蠢的错误,要么告诉您如何以某种方式格式化代码。所有这些都是琐碎的。

我的意思是,它们会告诉您运算符之间要放置多少空格,如何对变量进行大小写,要使用哪些“匈牙利风格”前缀(例如_表示成员),相互冲突的建议(例如您不能调用Cxyz类,但是您- 必须调用接口Ixyz),如何布局代码(将变量放在类的顶部还是底部)

在全局中,所有这些都是无用的。

这些标准中从未提及编写有效,可维护和可读的代码的要点。

例如:您将变量放在类的顶部还是底部?好吧,谁在乎-重要的是,如果您按功能区域将变量分组在一起。这很重要(如果您曾经在该地点看到20个变量,就会知道这一点)。

他们告诉您将大括号放在某些位置。大事了!我可以在K&R和ANSI样式括号中阅读代码,没关系。重要的是,如果所有Window类都以某种方式进行区分(例如以Form或Dlg后缀),以便您可以看到哪些文件包含窗口代码,哪些是普通对象。

这样的事情比标准通常包含的次要问题要重要得多。我不知道为什么他们会这样发展,但通常它们只是大量规则,妨碍了有效,高效的编码。

我的标准尝试将重点更多地放在代码和文件的组织上。我们具有某些标准,这些标准涉及在哪里可以找到文件。例如,对于非开发人员来说,可以查看我们的一个项目,并立即获取他们需要的文档文件。同样,我们尝试以与其他实际项目相似的方式来布置项目代码(请注意:在实际情况下,并非以可能并非始终适合的严格禁止的方式),并且基本上,我们尝试制定标准准则,以可以根据需要进行修改。

简而言之,它们是在帮助我们共同努力,而不是始终遵循have的一组限制性规则。

1
gbjbaanb

警告:下面的实用主义-这个问题的措辞似乎引起了关于“适当的”花括号样式等的辩论。我不忍受浪费时间在胡说八道上。

  1. 安装 ReSharper ,保留默认值,按照说明进行操作。

  2. 利润-团队中的每个人都将具有与Microsoft准则相近的风格,只是在一些方面偏离了Resharper标准,这些标准反映了行业中实际上更广泛使用的(并且可以说是改进)。

您的团队花费在创建和引用一些庞大的文档或书籍上的时间更少,或者花费curly braces和其他限制,他们将完成更多的编码。 ReSharper将在键入时强制命名和样式。做完了辩论结束。没什么可争论的。继续。

也就是说,阅读经典的 代码完整 可以帮助他们理解编码标准背后的原理,并为有效地通过代码传达含义提供许多重要指导,这是标准文档或检查程序无法做到的。

如果您想提高Resharper的功能,请在StyleCop for ReSharper插件中添加 StyleCop 。如前所述,MS准则和ReSharper默认值之间会存在一些小的冲突。我只会选择ReSharper。但是无论您采取哪种方式,只要将结果保存到ReSharper配置文件中,在团队中共享即可完成。

(不,我不是ReSharper的有钱人,只是一个满意的客户。除了它的许多其他功能之外,它还可以处理基本样式问题比任何标准文档或代码审阅系统都更具成本效益-可以将重要的事情留给脑筋。)

1
DanO