Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 编码准则应该做什么,有没有准则的好例子?_Language Agnostic_User Interface_Coding Style - Fatal编程技术网

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
显然,编码风格需要在整个团队中通用,以使开发人员能够有效地协同工作。你不能让一个人使用团队中其他人都无法理解的复杂数学算法在左栏中找到出路,而让另一个人在右栏中几乎无法理解inte的实现因此,根据经验,它们的设计应该有助于保持团队的团结,同时不影响生产力和创造力


从整个开发团队中获取一些信息,以便标准可以包含所有它应该包含的内容,而不包含一堆它不应该包含的内容。

是一个很好的例子,说明了一个正确的指导原则。我有几件事我想在其中改变,但在大多数情况下,它非常棒。

我想要一个编码标准文档来解决团队的宗教争论

对于有多个有价值的答案,并且人们倾向于争论很长时间的问题,我们希望整个项目保持一致,避免花费太多时间讨论它们


很好的例子是“制表符与空间”和“K&R与ANSI支撑放置”。在团队中进行调查,做出决定,并将其记录下来。立即将决定应用于所有现有代码,并自行检查。不要再讨论它。

我也喜欢一种编码风格的想法,它可以帮助开发人员直观地识别错误代码。例如,在名称中包含变量的类型