推荐的.NET / C#编码标准?[关闭]


19

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

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

Answers:


29

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

如果您想使用1.1的旧版本,请在此处尝试。

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


3
是的-与开发该软件的人员匹配的使用不会错。我已经看到了针对此类问题的宗教战争,但是当您获得使您自己的代码与所使用的框架保持一致的内容时,您将不得不极力主张不使用它。另外,MS产生的静态分析工具已经过调整,可以寻找这些做法。
托德·威廉姆森

请问我能收到有关否决票的反馈吗?
瑞安·海斯

你不遵循什么?
JeffO

好吧,里面有很多东西,我还没有记住。因此,与其说我完全按照它做(我不知道我是按照它做,所以它可能是正确的或不正确的),不如说我不,哈哈。如果我知道全部事情,我可能会知道。
Ryan Hayes

10

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

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







2

方法应该简短

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

选择好你的名字。

例如,阅读清洁守则



1

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

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

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

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

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

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

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

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

简而言之,它们是在帮助我们共同努力,而不是总是必须遵循的一系列限制性规则。


1

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

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

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

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

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

如果你想升压什么ReSharper的能为你做什么,添加了StyleCop用了StyleCop ReSharper的插件。如前所述,MS准则和ReSharper默认值之间会存在一些小的冲突。我只会选择ReSharper。但是无论您采取哪种方式,只要将结果保存到ReSharper配置文件中,并在团队中共享即可。

(不,对于ReSharper而言,我不是一个小菜一碟,只是个满意的客户。除了它的许多其他功能之外,它还比任何标准文档或代码检查系统都更经济高效地处理基本样式问题-为重要的事情留有头脑)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.