年前很仔细地看了一遍并做了笔记,同时大力向同事推荐。
个人认为,JSF是目前为止我看到的最好的C++ coding standard之一(《C++ coding standard》更好,但是也更不具体,一般团队恐怕很难推广),比google的那个至少高了一个层次。要说缺陷,一是可能新手不够友好,二是对一些C++特性的使用过于保守,其解释是因为缺乏相应的支持工具。这些缺陷都是可以理解的。
JSF是针对高质量程序而制定的,自身质量也很高,没有明显的硬伤。它将许多平时很随意的约定形式化了。例如,对于用class还是struct,明确地提出,有类不变式,就要用class,没有,则是struct.
而google那个则不够严谨,往往根据直觉和习惯来制定标准。而且我也也看不出那个标准所针对的环境和目标。而且还有硬伤。例如,对于include的顺序的规定,就违背了尽早暴露错误的原则,还可能导致头文件包含不完整的问题。在我经历的项目中有过多次教训。