《程序设计实践》- 规则汇编
Posted CherryTab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《程序设计实践》- 规则汇编相关的知识,希望对你有一定的参考价值。
风格
- 全局变量用具有描述意义的名字,局部变量用短名字
- 保持一致性
- 函数采用动作性的名字
- 要准确
- 以缩行形式表示程序结构
- 使用表达式的自然形式
- 利用括号排除歧义
- 分解复杂的表达式
- 要清晰
- 当心副作用
- 使用一致的缩行和加括号风格
- 为了一致性,使用习惯用法
- 用else-if处理多路选择
- 避免使用函数宏
- 给宏的体参数都加上括号
- 给神秘数起名字
- 把数定义成常量,不要使用宏
- 使用字符形式的常量,不要使用整数
- 利用语言去计算对象的大小
- 不要大谈明显的东西
- 给函数和全局数据加注释
- 不要注释不好的代码,应该重写
- 注释不要与代码矛盾
- 注释澄明情况,不要添乱
界面
- 隐藏实现的细节
- 选择一小组正交的基本操作
- 不要在用户背后搞小动作
- 在各处使用相同的方式做同样的事
- 释放资源与分配资源应该在同一层次进行
- 在低层检查错误,在高层处理
- 只把异常用在异常的情况
排错
- 寻找熟悉的模式
- 检查最近的变动
- 不用两次犯同样的错
- 现在排除,不是以后
- 取得堆栈轨迹
- 键入之前仔细阅读
- 把自己的代码解释给别人(小鸭子
- 把错误弄成可重现的
- 分而治之
- 研究错误的计数特性
- 显示输出,使搜索局部化
- 写自测代码
- 写记录文件
- 画一个图
- 使用工具
- 保留记录
测试
- 测试代码的边界情况
- 测试前条件和后条件
- 使用断言
- 做防御性程序设计
- 检查错误的返回值
- 以递增的方式做测试
- 首先测试最简单的部分
- 弄清期望的输出
- 检验那些应当保持的特征
- 比较相互独立的实现
- 度量测试的覆盖面
- 自动回归测试
- 建立自包容测试
性能
- 自动计时测量
- 使用轮廓程序
- 集中注意热点
- 画图
- 使用更好的数据结构和算法
- 让编译程序做优化
- 调整代码(不要开副本,因为那样会副本爆炸)
- 不要优化无关紧要的东西
- 收集公共表达式
- 用低代价操作代替高代价操作
- 铺开或者删除代码
- 缓存频繁使用的值
- 写专用的存储分配程序
- 对输入输出做缓冲
- 特殊情况特殊处理
- 预先算出某些值
- 使用近似值
- 在某个低级语言里重写代码
- 使用尽可能小的数据结构以节约存储
- 不存储容易重算的东西
可移植性
- 盯紧标准
- 在主流中做程序设计(不要副本
- 警惕语言的麻烦特性
- 使用多个编译系统测试
- 使用标准库
- 只使用到处都用的特征
- 避免条件编译
- 把系统依赖性局限到独立文件里
- 把系统依赖性隐藏在界面后面
- 用正文做数据交换
- 数据交换时用固定的字节序
- 如果改变规范就该改变名字
- 维护现存程序与数据的相容性
- 不用假定是ASCII
- 不要假定是某种语言(英语
作为程序员个人,我们很容易感到自己像是位于某种大机器上的一个小齿轮,必须使用那些强加给我们的语言、系统和工具,做那些我们必须完成的工作。但是,从长远观点看,真正起作用的还是看我们在使用现有东西的情况下工作做得怎么样。
以上是关于《程序设计实践》- 规则汇编的主要内容,如果未能解决你的问题,请参考以下文章