关于google的C++ coding style
大家都知道google的开源项目有很多,不过我观察过一些开源项目,觉得代码质量就是这家最好了。这些“教条”式规定的背后是是来自于常年工程经验积累上的理性思考。
为什么好?主要有以下几点:
1.规范,就像一个人写出来的。
2. 抽象但又不过度抽象。
3.算法实现上不会晦涩难懂,需要有trade off的功力。
Google 的这套C++ Style Guide 直接影响了不少开源项目。它里头还有一条独树一帜的传参规范是:输入用引用,输出用指针,输入参数必须在输出参数之前,即使是新增的。这条规范的逻辑是什么。了解、背诵规范是没什么意义的,我们得理解规范背后的逻辑然后融入到设计过程中。这个小问题也没有标准答案,但起码可以分析出几个所以然:
- 参数写反了可以从静态检查/编译期发现
- 阅读代码时不用看函数声明就对 I/O 一目了然
以上说到底还是可读性高,也能快速定位编译期的问题。
当然,实际团队开发中很难也没必要考量这些细节,但可以此了解一个人的品味和逻辑。代码质量确实跟产品和公司的成败没什么特别大的关系,只是我们作为工程师,就应该从自己的角度去追求自己的东西。啊,这是艺术。
google定制了很多编程语言的规范:(以下是中文版)
http://zh-google-styleguide.readthedocs.org/en/latest/