程序设计实践-规则汇编

风格

界面

排错

测试

性能

可移植性

*全局变量用具有描述意义的名字,局部变量用短名字。

*保持一致性。

*函数采用动作性的名字。

要准确。

*以缩行形式显示程序结构。

*使用表达式的自然形式。

*利用括号排除歧义。

*分解复杂的表达式。

*要清晰。

*当心副作用。

*使用一致的缩行和加括号风格。

*为了一致性,使用习惯用法。

*用else-if 处理多路选择。

*避免使用函数宏。

*给宏的体和参数都加上括号。

*给神秘的数起个名字。

*把数定义为常量,不要定义为宏。

*使用字符形式的常量,不要用整数。

*利用语言去计算对象的大小。

*不要大谈明显的东西。

*给函数和全局数据加注释。

*不要注释不好的代码,应该重写。

*不要与代码矛盾。

*澄清情况,不要添乱。

*隐蔽实现的细节。

*选择一小组正交的基本操作。

*不要在用户背后搞小动作。

*在各处都用同样方式做同样的事。

*释放资源与分配资源应该在同一层次进行。

*在低层检查错误,在高层处理。

*只把异常用在异常的情况。

 

*寻找熟悉的模式。

*检查最近的改动。

*不要两次犯同样错误。

*现在排除,而不是以后。

*取得堆栈轨迹。

*键入前仔细读一读。

*把你的代码解释给别人。

*把错误弄成可以重现的。

*分而治之。

*研究错误的计数特性。

*显示输出,使搜索局部化。

*写自检测代码。

*写记录文件。

*画一个图。

*使用工具。

*保留记录。

 

*测试代码的边界情况。

*测试前条件和后条件。

*使用断言。

做防御性程序设计。

*检查错误的返回值。

*以递增方式做测试。

*首先测试最简单的部分。

*弄清所期望的输出。

*检验那些应当保持的特征。

*比较相互独立的实现。

*度量测试的覆盖面。

*自动回归测试。

*建立自包容测试。

 

*自动计时测量。

*使用轮廓程序。

*集中注意热点。

*画一个图。

*使用更好的算法或数据结构。

 

*让编译程序做优化。

*调整代码。

*不要优化无关紧要的东西。

*收集公共表达式。

*用低代价操作代替高代价操作。

*铺开或者删除代码。

*缓存频繁使用的值。

*写专用的存储分配程序。

*对输入输出做缓冲。

*特殊情况特殊处理。

*预先算出某些值。

*使用近似值。

*在某个低级语言里重写代码。

*使用尽可能小的数据类型以节约存储。

*不存储容易重算的东西。

 

*盯紧标准。

*在主流中做程序设计。

*警惕语言的麻烦特性。

*用多个编译系统试验。

*使用标准库。

*只使用到处都能用的特征。

*避免条件编译。

*把系统依赖性局限到独立文件里。

*把系统依赖性隐藏在界面后面。

*用正文做数据交换。

*数据交换时用固定的字节序。

*如果改变规范就应该改变名字。

*维护现存程序与数据的相容性。

*不要假定是A S C I I。

*不要假定是英语。

 

 

这是Brian W.Kernighan 和 Rob Pike合编的《程序设计实践》一书附录中的内容,稍作整理,供朋友们参考。

由于成书时间较早,有关内容不如《代码大全》,但少而精也是一个可取之处吧?!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值