Coding style 编码风格:如何改进公司的编码风格和标准
提高公司编码风格标准的最佳方法是什么?让我们以C#为例 我想开发者之间有很多需要考虑的差异。具体的可能是教育、经验和过去的编程语言 一个人如何证明某件事比另一件事正确? 一个人可能会说:“我把我的身体移动到我用四轮车挣钱的地方。”。那么,为什么说“我开车上班”更“正确” 有些人可能喜欢代码更明确,代码行数更多。有些人可能喜欢更紧凑的代码Coding style 编码风格:如何改进公司的编码风格和标准,coding-style,Coding Style,提高公司编码风格标准的最佳方法是什么?让我们以C#为例 我想开发者之间有很多需要考虑的差异。具体的可能是教育、经验和过去的编程语言 一个人如何证明某件事比另一件事正确? 一个人可能会说:“我把我的身体移动到我用四轮车挣钱的地方。”。那么,为什么说“我开车上班”更“正确” 有些人可能喜欢代码更明确,代码行数更多。有些人可能喜欢更紧凑的代码 // Explicit string text = defaultValue; if (string.IsNullOrEmpty(text)) { tex
// Explicit
string text = defaultValue;
if (string.IsNullOrEmpty(text)) {
text = fallbackValue;
}
// Tighter
string text = defaultValue ?? fallbackValue;
或者旧的保护性编程风格,在开始时检查错误情况,而不是将整个方法体包装在一个肯定的if子句中:
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
}
旧的“我在读代码时遇到困难”在这里有效吗?这与C#引入泛型时的情况相同,人们最初在阅读时遇到困难
不可读代码和一些开发人员不习惯的代码之间的界限在哪里?
Phil Haacks的哪一部分在这里有正确的观点
有没有简单的方法来设定编码标准并在公司中加以维护?
更新:考虑诸如变量命名之类的内容,这些内容实际上无法在文档中定义。或者可以吗?我认为一致性在这里很重要。除非当前的方法特别糟糕,否则就哪种方法比另一种更好进行语义辩论没有多大意义
重要的是,团队要始终如一地编写代码,这样,如果有人辞职或被公交车撞倒,那么他/她的同事在被迫使用代码时就会知道代码发生了什么。在公司设置编码标准的最简单方法是: 创建标准文档并强制执行
…人们喜欢抱怨代码质量,但很少有人会坐下来花时间创建标准文档。这是值得付出的努力,只要你能强制执行(代码审查等),那么你一定会注意到你的代码有了改进。你总是可以使用免费的工具,比如微软的
您可以禁用或修改您不喜欢的规则大多数公司使用编码风格的准则/约定。这些文档告诉您,即使对于一个命令,也应该始终在if体周围使用大括号,应该使用制表符/空格缩进,等等
有很多工具可以(自动)检查和执行编码样式。(java世界的一个例子是checkstyle,它可以集成到eclipse中,也可以集成到像“hudson”这样的持续集成解决方案中。)首先,您必须始终强制执行编码样式-永远不会得到同意。
这就是为什么我会尝试自动化一致性检查。根据您的语言,您可以在linux下使用StyleCop(用于.Net)或类似indent的东西 每个开发人员都可以在自己的环境中使用自己的代码样式(根据您的环境,重新格式化可能非常容易),但所有签入的代码都必须采用公司的样式 你选择哪种款式?嗯,根据语言的不同,通常已经有了流行的风格。对于你的例子(C),我会选择微软风格。最后:只有项目经理(高级程序员)有权进行调整 一个人如何证明某事是正确的 就在别的事情上
简单地说:就是不要。选择一种编码风格,传达它,并实施它。编码风格有两个主要方面:
例如,即使是一个全新的Java程序员,我也知道何时使用大写/小写标识符,这仅仅是因为Eclipse让我(悄悄地、不引人注目地)知道了标准是什么。应该是社区维基百科,更不用提重复的几个问题了。这对客户机是有好处的,假设他们已经阅读了它。代码检查器是一种更好的方法,其中某人的代码可以根据设置通过或失败。参见Vadim的答案。编码标准文档是开发团队内部的……每个开发人员都阅读该文档,以便了解团队的编码标准。这与客户无关。客户永远不应该看到你的团队的编码标准(当然,除非他们要求)。@Justin:同样,这很好,但它并不能阻止我提交不同风格的代码-让你回到起点,OP在那里&询问如何停止。使用发布的标准是一个更好的主意。这可以节省您的时间,而且人们很有可能已经熟悉他们了。关闭