针对即将推出的 C++ 项目提出了以下建议。

  • C++ 编码标准,作者:Sutter 和 Alexandrescu
  • JSF 飞行器 C++ 编码标准
  • C++ 风格的要素
  • 《Effective C++》第三版,作者:Scott Meyers

还有其他选择吗?或者上面的列表应该在 C++ 项目中使用吗?

一些相关链接

有帮助吗?

解决方案

我真的认为采用哪一种并不重要,只要大家都同意就可以了。有时这可能很难,因为某些风格似乎与人们的品味不符。IE。归结为争论是否为所有成员变量添加前缀 m_漂亮的 或不。

我一直在使用和修改 地质软件 有一段时间的标准,这些是针对 C++ 的。还有一些其他的在 你最喜欢的编码指南清单是什么 线

其他提示

C++ 编码标准:101 规则、指南和最佳实践 (C ++深度系列)Herb Sutter和Andrei Alexandrescu。

嗯,奇怪的问题。只需选择大多数团队成员熟悉的标准即可。为您的团队进行某种民意调查。不知道 SO 在这里能提供什么帮助:)

试试这个,它是美国宇航局戈达德太空飞行中心使用的那个。

http://software.gsfc.nasa.gov/AssetsApproved/PA2.4.1.3.pdf

我为一家英国大公司编写了一个编码标准,并且非常有意识地给出了我选择某些东西的原因,而不是仅仅让它成为一堆“你应该”的声明。(-:

作为快速出路,我建议强制执行:

  • Scott Meyers 的《Effective C++》第三版(亚马逊链接) - 如果你能找到本书第一版的副本,那么就购买它来了解 OO 设计的概述,该概述已从后续版本中删除。)-:
  • Scott Meyer 的书《Effective STL》(亚马逊链接) - 您必须使用 STL 才能有效地使用 C++。
  • Steve McConnell 的书《Code Complete 2》(亚马逊链接) - 不是 C++ 特定的,但充满了伟大的见解。

编码标准只有帮助您编写代码才有意义。因此,他们只需要保持代码的一致性(即,如果有人将 m_ 用作变量成员,而有人没有,则与他们都使用相同样式相比,可能需要更长的时间来理解代码)。

这就是他们(应该)做的,所以只需选择您现有的代码并确保您的团队代码采用相同的风格即可。

我喜欢把它想象成卡通。如果你成为《辛普森一家》的漫画家,你必须以官方的方式画眼睛,否则一切看起来都是裤子,但如果你去《恶搞之家》,你必须以不同的方式画它们。两种方式都没有错。

太多的标准都是毫无意义的限制,是由那些不自己编码(或者认为自己太优秀而无法遵守这些限制)的人编写的。其他人试图教你如何编码。两者都没有在良好的标准中占有一席之地,它们只是让您更容易查看某些代码并理解其功能。

例如。我的标准包括命名目录的规则 - 您将始终将代码放在与项目同名的目录中,所有二进制文件都放在 bin 子目录中,所有配置文件都放在同一位置,以及更改日志等。所有简单的东西,但我保证我永远不会在根目录中找到一个与其二进制文件名称不同的项目,我不知道对其进行了哪些更改。简单、容易的事情却能带来巨大的改变。

我同意 Harald Scheirich 的观点,最重要的是让团队就规则应该是什么达成一致,而不是仅仅选择外人推荐的一套。

我个人的建议是阅读 代码完整,第二版 作者:Steve McConnell,其中描述了(以及许多其他有用的内容)几个常见的编码标准,并对每个标准提供了评论。这可能有助于您的团队制定自己的标准。

Lockheed Martin 的 JSF Air Vehicle C++ Coding Standards 是一本有趣的读物,但它有点矫枉过正,除非您在错误可能致命的领域工作。从计算机伦理的角度来看,这仍然是一个非常重要的例子,说明如何以安全性和正确性为重中之重进行编程。

对于通用 C++ 编码,我个人推荐 C++ 编码标准 作者:赫伯·萨特。从一开始就强调什么 不是 标准化(与风格或偏好相关的事物,而不是促进安全性、正确性、效率的实践)。它也是您列表中最简单的读物之一,为每个标准提供了非常简短但简洁的论点,使其易于向您的同事展示。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top