2009-09-22 86 views
12

提高公司编码风格标准的最佳方法是什么?这里以C#为例。编码风格:如何改进公司的编码风格和标准

我想有很多开发人员之间的差异需要考虑。具体的可以是教育,经验和过去的编程语言。

如何证明某件事是正确的而不是其他事情?

一个人可能会说“我把我的身体移动到我用我的四轮车赚钱的地方”。那为什么说“我开车去我的车”更“正确”?

有些人可能更喜欢使用更多代码行更明确的代码。有些人可能会喜欢更密的代码。

// Explicit 
string text = defaultValue; 
if (string.IsNullOrEmpty(text)) { 
    text = fallbackValue; 
} 
// Tighter 
string text = defaultValue ?? fallbackValue; 

还是老的保护编程风格,你在开始时检查错误的情况下,而不是整个包住方法身体正面的,如果从句中:

public string ChangeText(string text) 
{ 
    if (!string.IsNullOrEmpty(text)) 
    { 
     // Do a lot of stuff 
    } 
    else { 
     throw new Exception(); 
    } 
} 
// vs. 
public string ChangeText(string text) 
{ 
    if (string.IsNullOrEmpty(text)) { 
     throw new Exception(); 
    } 
    // Do a lot of stuff 
} 

是老“我遇到麻烦阅读此代码“在这里有效?这与Generics被引入C#时的情况是一样的,人们在阅读时遇到了最初的麻烦。

哪里是一些开发人员不习惯的不可读代码和代码之间的界限?

Phil Haacks的哪部分“7 Stages of new language keyword grief”在这里有效?

有没有简单的方法来设置编码标准,并在公司维护它们?

UPDATE:以在考虑之类的东西变量命名,不能真正在文档中进行定义。或者可以吗?

+0

应该是社区维基 – SilentGhost 2009-09-22 15:49:05

+0

更不用说重复几个问题了。 – 2009-09-22 16:08:33

回答

5

在公司设置编码标准的最简单的方法:

创建标准文件和执行它。

...人们喜欢抱怨代码质量,但很少有人会坐下来花时间创建标准文档。这是值得的努力,只要你可以执行它(代码评论等),那么你一定会注意到你的代码的改进。

+0

这只对客户有好处,假设他们甚至读了它。代码检查器是一种更好的方法,某人的代码可以根据设置通过或失败。见瓦迪姆的回答。 – 2009-09-22 15:53:25

+0

编码标准文档是开发团队的内部人员......每个开发人员都阅读文档,以便了解团队的编码标准。它与客户无关。客户永远不应该看到你的团队的编码标准(当然,除非他们要求)。 – 2009-09-22 15:55:27

+0

@Justin:再说一次,这很好,但是它并没有阻止我提交不同样式的代码 - 这会让你回到原来的位置,OP会在哪里询问如何停止。 – 2009-09-22 16:02:58

0

我认为这里的一致性很重要。除非当前的方法特别糟糕,否则进入语义辩论的方式没有太多意义。

重要的是,团队一致地编写他们的代码,以便如果有人辞职或被公共汽车撞到,他/她的同事就会知道当他们被迫使用代码时会发生什么。

5

你总是可以使用免费工具,如微软的StyleCop

您可以禁用或修改您不喜欢的规则

+1

对于Java,请看Checkstyle:http://checkstyle.sourceforge.net/ – 2009-09-22 15:51:44

1

大多数公司都使用编码风格指南/约定。这些文档告诉你,即使对于一个命令,你也应该总是在if体上花括号,你应该用制表符/空格缩进等等。

有很多工具可以(自动)检查和执行编码风格。 (java世界的一个例子是checkstyle,它可以集成到eclipse中,也可以集成到像hudson这样的持续集成解决方案中。)

3

首先,您将始终必须执行编码风格 - 永远不会有同意。
这就是为什么我会尝试自动检查一致性。根据你的语言,你可以使用StyleCop(.Net)或类似于linux下的缩进。

每个开发人员都可以在自己的环境中使用自己的代码风格(根据您的环境,重新格式化可能非常简单),但所有签入的代码必须符合公司的风格。

你选择哪种款式?那么,经常有流行的风格 - 取决于语言。对于你的例子(C#),我会选择微软风格。最后:只有项目经理(高级程序员)才有权调整它。

+0

是的 - 像ReSharper这样的工具可以很容易地重新格式化源代码,以匹配大括号等约定。 – TrueWill 2009-09-22 17:41:21

1

如何证明 是正确的东西?

简单:就是不。选择一种编码风格,传达它,并执行它。

+2

简单,但它可能会导致您的员工厌恶退出。取决于你是否有技术方面的尊重(与你的资历和权力完全不同)。 – MarkJ 2009-09-22 16:02:44

4

有编码风格的两个主侧是:“我在哪里将左大括号”

  1. 类型问题 - 这些通常是不重要的,即没有真正的理由偏好一种风格。
  2. 实际的编码规则,就像我们在函数中使用return一样。

我看到它的方式,对于#1类型的问题,没有任何争论的意义。只需在标准文档中设置一个标准,并强制执行(稍后会详细介绍)。

至于第二个问题,我真的不知道它是否应该是regulater。我个人喜欢用函数返回值来检查错误情况,我知道有些人对这种做法感到畏惧。但在一天结束时,我们通常可以很好地阅读彼此的代码。这些类型的问题更多的是关于你更喜欢表达自己,更容易写出来,而且我不希望公司制定达到这个级别的规则。

至于如何执行,标准文件是好的,但根据我的经验,只是从来没有读过或紧随其后,很快就被遗忘了。 最好的的方式是有一种自动化的工具,告诉你,你违反了标准。例如,即使作为一个全新的Java程序员,我也知道何时需要大写/小写我的标识符,因为Eclipse让我(悄悄地,不显眼地)知道标准是什么。