C++信徒的摩西十戒,第1张

C++信徒的摩西十戒,第2张

这是摩西的C++信徒十诫。虽然实际上有十四条戒律,但这十四条戒律都值得刻在显示器的边缘,供C++程序员每天膜拜。我会把它们刻在我的博客和记忆里,直到它们成为我思考的一部分。

第0条:不拘泥于细节(知道哪些不应该标准化)

缩进:你不必指定如何缩进,只需遵循一个你喜欢的规则。

主席:今天没有太大需要限制80个字。当然,越有利于阅读越好。

命名:不要太严格,除了所有宏都要大写,其他都要遵循一定的公认风格。有两种常见的样式,一种是将所有小写单词连字符,另一种是将单词的首字母大写。如果需要使用各种第三方库,基本很难维护一个风格。在一定范围内保持一致,目标是让阅读更容易。

注释:不要指定注释的格式。然而,在doxygen语法中使用注释是一个好主意。我总是使用doxygen来生成文档。

匈牙利笔记:我很高兴我找到了一个支持我做我讨厌的事情的盟友。用C++语言表达类型,用一点小技巧是没用的。C++根本不需要这些,只会带来混乱。

单入口和单出口:在支持异常和确定性销毁的C++世界中,这是多余的。

在这里,有两件事是明显对立的:匈牙利记法和单进单出原则。

第1条:在高警告级别干净地编译。

将编译器的警告级别设置为,可以悄悄地生成结果。对那些无视警告的人,关上门!放开狗!不要轻易关闭源代码中的编译器警告。

对于第三方库,屏蔽掉包含的文件即可。

未使用的参数:不要提供参数名。

未使用的变量:只需插入该变量的表达式。这是惯用的方法,会用的比较多。

变量未初始化:已初始化。需要通过进程初始化的异常,即obj形式的异常;init _ obj(obj);

有些分支没有返回值。向这些分支添加断言:assert(false);后跟一个return返回值。

没有符号不匹配。如果无法避免,就提前写强制转换。个人认为还是尽量避免无符号数比较好,即使在处理理论上没有符号的数据时,有符号数的适应性更好。几乎不需要使用无符号数——除了一些位操作。

第2条:使用自动构建系统

这是每日建筑!对于一个团队项目来说,DailyBuild就是心跳,它应该能够通过一个按钮或者一个命令来构建整个系统。你的心跳正常吗?这里的关键是所有的工作都可以一次操作完成。

第3条:使用版本控制系统

哪个团队没有用风投?如果不是,“瞎子骑瞎马,夜半临深潭”真的是极好的写照。

第4条:投资于代码审查。

许多团队实际上没有有效的代码审查。展示自己的代码,阅读别人的代码,也是熟悉整个项目的好方法。把代码投射到墙上,几个人坐下来一起评论,也是一种有效的方法。

第5条:一个实体应该只有一个契约责任。

单一责任原则。这个原则不是那么容易实现的。即使是STL这样的库也会犯违背这个原则的错误。这里引用两个违背这个原则的实现:realloc和stl中的basic_string。不过对于basic_string,我觉得比MFC中的CString好太多了。在exception c++风格中,对basic_string进行了分析,得出了一个一般原则:尽量将函数实现为独立函数,而不是成员函数。

尽量用一句话解释一个模块的功能,不多也不少。如果不能用这样一句话概括,那就重新考虑规划这个模块的责任。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++信徒的摩西十戒

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情