Closed. This question needs to be more focused。它当前不接受答案。
想要改善这个问题吗?更新问题,使它仅关注editing this post的一个问题。
5年前关闭。
Improve this question
编码准则的一些好例子是什么。我并不是真正在寻找任何一种语言的特定内容。
但是在编写编码指南时我应该做什么/评估?例如,准则应具有多大的灵活性,以及应由程序员或其他人甚至由准则预先决定多少决定。
我正在研究的这套准则应该涵盖广泛的主题:注释,数据库设计,甚至某些用户界面准则。 减少错误的可能性 减少分析其他人编写的代码所需的时间 给某人一次动力旅行
显然,第三种方法浪费了其他人的时间,但是您确实需要考虑一下,特别是这样您就不会走这条路了。
话虽如此,我注意到了一些明确的要做和不要做的事情:
强制使用一致的空格。制表符,2个空格,4个空格都没有关系。保持一致,这样缩进级别不会被使用不同编辑器的人搞砸。我看到过犯错误的原因,因为维护程序员错误地解释了代码块的嵌套级别。 强制执行一致的日志记录方法。如果支持人员无法浏览日志,则会浪费大量时间,因为每个人的模块日志都是出于不同的原因,并且每个人对信息,警告和错误的定义都不同。 强制执行一致的错误处理。如果模块A抛出异常,模块B返回错误代码,而模块C简单地记录并继续运行,那么将它们集成在一起而不让错误滑过裂缝将很痛苦。 尽量避免放置小括号之类的小事。这将引起很多人争论他们的宠物风格,最后,它确实不会对代码的可读性产生巨大影响。另一方面,强制使用括号可以有所作为。 在集成不同的代码库时,不要试图更改每个人的变量命名约定以匹配黄金标准。您可能有一个前进的标准,但是最重要的是要始终保留所有已经存在的本地化标准。如果一个模块使用 文件系统布局很重要。保持一致。使某人可以轻松进入库源代码库,并立即知道 header ,Makefile,源代码在哪里。如果您使用的是Java或Python,那么这很容易,因为软件包系统会强制执行它。如果您使用的是C,C++或其他多种脚本语言,则需要自己设计一个标准布局并坚持使用。 不要汗水。变量命名约定,括号或关键字或函数名称之间的空格...多数无关紧要,因为它不会减少发生错误的可能性。您设置的每条规则都应有具体的依据,并且如果发现它引起的痛苦超过其应有的值(value),则不要害怕更改或删除它。 不要在所有地方强制执行免费的注释块。它们最终将成为浪费,并且大多数注释最好在代码本身中表达(例如,作为变量或函数名称)。
最后,最重要的是在同级之间进行定期的代码审查。鼓励人们在看到“代码气味”时大声疾呼。同样要确保人们意识到 build 性的代码批评并不意味着是个人的-消息源是团队中所有人共享的,它不仅仅属于原始作者。以我的经验,最令人头疼的问题是设计问题,任何数量的编码准则都无法解决。软件设计仍然是一种艺术形式(无论好坏),而且人才库比一个人要好得多。
想要改善这个问题吗?更新问题,使它仅关注editing this post的一个问题。
5年前关闭。
Improve this question
编码准则的一些好例子是什么。我并不是真正在寻找任何一种语言的特定内容。
但是在编写编码指南时我应该做什么/评估?例如,准则应具有多大的灵活性,以及应由程序员或其他人甚至由准则预先决定多少决定。
我正在研究的这套准则应该涵盖广泛的主题:注释,数据库设计,甚至某些用户界面准则。
最佳答案
编码标准通常具有三个目的:
显然,第三种方法浪费了其他人的时间,但是您确实需要考虑一下,特别是这样您就不会走这条路了。
话虽如此,我注意到了一些明确的要做和不要做的事情:
m_member
,那么维护程序员应该使用m_member2
而不是应用任何其他标准(例如member2_
或m_lpcstrMember2
或其他任何标准)。本地一致性为王。 最后,最重要的是在同级之间进行定期的代码审查。鼓励人们在看到“代码气味”时大声疾呼。同样要确保人们意识到 build 性的代码批评并不意味着是个人的-消息源是团队中所有人共享的,它不仅仅属于原始作者。以我的经验,最令人头疼的问题是设计问题,任何数量的编码准则都无法解决。软件设计仍然是一种艺术形式(无论好坏),而且人才库比一个人要好得多。
10-07 22:57