Language agnostic 编码准则应该做什么,有没有准则的好例子?
有哪些编码准则的好例子。我并不是在寻找任何特定于一种语言的东西 但是,在编写编码指南时,我应该做什么/评估什么呢?例如,指导方针应该有多大的灵活性,多少决策应该留给程序员或其他人,甚至由指导方针预先决定Language agnostic 编码准则应该做什么,有没有准则的好例子?,language-agnostic,user-interface,coding-style,Language Agnostic,User Interface,Coding Style,有哪些编码准则的好例子。我并不是在寻找任何特定于一种语言的东西 但是,在编写编码指南时,我应该做什么/评估什么呢?例如,指导方针应该有多大的灵活性,多少决策应该留给程序员或其他人,甚至由指导方针预先决定 我正在研究的这套指导原则应该涵盖广泛的主题:评论、数据库设计,甚至一些用户界面指导原则。一般来说,我希望指导原则能够回答您通常会问但回答时间过长的问题,这可能是“个人偏好”如果你只是一个人编码。通常,它们会指定一些精辟的东西,比如数据库命名约定、空格与制表符(以及空格的数量)以及注释/文档注释样
我正在研究的这套指导原则应该涵盖广泛的主题:评论、数据库设计,甚至一些用户界面指导原则。一般来说,我希望指导原则能够回答您通常会问但回答时间过长的问题,这可能是“个人偏好”如果你只是一个人编码。通常,它们会指定一些精辟的东西,比如数据库命名约定、空格与制表符(以及空格的数量)以及注释/文档注释样式 UI指南与我认为的其他指南不同
我最喜欢的编码风格指南的一个例子是,尽管它没有涉及我在其他指南中看到的细节 这是一个相当开放的问题,答案也同样开放: 每项指导原则的实施成本应低于其带来的效益。 要小心,因为方程的每一边都有一些隐藏的部分 实现的成本可能包括排除完美的替代方案、扼杀创造力和创新,以及鼓励代码评审退化为强调风格上的细微违规,而不是解决实际问题
对于忙碌的开发者来说,收益的价值可能是无形的(因此令人沮丧),但是,这可能会使您的组织品牌更强大,或者让新员工更快地参与到项目中来,这可能会超过遵守的小增量成本。编码准则是团队成员的行为规则,这样您就可以轻松地阅读彼此的代码
if( !codingGuidelines.Followed)
{
reason = programmer.WhyNot();
if( reason.Acceptable)
{
codingGuidelines.Integrate( reason);
}
else
{
team.GiveAssKicking(programmer);
}
}
它还可以在代码评审会议上避免“换行或同行括号”的讨论,从而节省大量时间;-)
在编写代码指南时,请确保它们的存在是有原因的,并且它们确实有助于您的团队编写更可读的代码。编码指南的存在是为了便于其他人阅读您的代码。即使您是为自己编写代码的,并且是唯一的开发人员,找到一套业界普遍接受的指导原则并坚持这些原则也可能很有用。这将使您更容易阅读其他人的代码,并使您能够在以后融入更大的团队 如果使用.net,请查看StyleCop。默认情况下,它包含MS自己使用并用于设计.net framework的标准。您可以从这里获得: 您可以禁用不喜欢的规则并添加自己的规则。甚至可以编写脚本以在签入代码时强制执行规则。最棒的是,如果你真的不熟悉这类东西,它会准确地告诉你你做错了什么。如果您想更进一步,请查看Resharper。这是同一种类型的东西,但它是在您键入时实时执行的(尽管默认情况下它使用的标准略有不同)
如果你不喜欢c,我相信其他语言也有类似的实用程序!作为一名开发人员,我通常更喜欢指南来提供基本的指导,但不要太严格,以至于我无法按照自己喜欢的方式编码……例如,如果指南告诉我必须使用什么编码模式,而不是让我自己制作专业的judgement那么它太紧了: 例如,我可能希望看到以下类型的东西:
- 变量名的样式,即匈牙利符号(并非我严格使用这些符号)
- 方法应该用它们的一般用途进行注释,包括它们返回的内容(如果有的话)
- 类应该用一个特定的布局来定义:即所有的私有字段在顶部,然后是事件、公共方法、私有方法,不管它们是否应该按字母顺序排列
- 名称空间、类、方法、事件和属性等的命名约定
- 你应该使用If符号而不是int a=(blah)?true:false
从整个开发团队中获取一些信息,以便标准可以包含所有它应该包含的内容,而不包含一堆它不应该包含的内容。是一个很好的例子,说明了一个正确的指导原则。我有几件事我想在其中改变,但在大多数情况下,它非常棒。我想要一个编码标准文档来解决团队的宗教争论 对于有多个有价值的答案,并且人们倾向于争论很长时间的问题,我们希望整个项目保持一致,避免花费太多时间讨论它们
很好的例子是“制表符与空间”和“K&R与ANSI支撑放置”。在团队中进行调查,做出决定,并将其记录下来。立即将决定应用于所有现有代码,并自行检查。不要再讨论它。我也喜欢一种编码风格的想法,它可以帮助开发人员直观地识别错误代码。例如,在名称中包含变量的类型