• 《程序设计实践》- 规则汇编


    风格

    • 全局变量用具有描述意义的名字,局部变量用短名字
    • 保持一致性
    • 函数采用动作性的名字
    • 要准确
    • 以缩行形式表示程序结构
    • 使用表达式的自然形式
    • 利用括号排除歧义
    • 分解复杂的表达式
    • 要清晰
    • 当心副作用
    • 使用一致的缩行和加括号风格
    • 为了一致性,使用习惯用法
    • 用else-if处理多路选择
    • 避免使用函数宏
    • 给宏的体参数都加上括号
    • 给神秘数起名字
    • 把数定义成常量,不要使用宏
    • 使用字符形式的常量,不要使用整数
    • 利用语言去计算对象的大小
    • 不要大谈明显的东西
    • 给函数和全局数据加注释
    • 不要注释不好的代码,应该重写
    • 注释不要与代码矛盾
    • 注释澄明情况,不要添乱

    界面

    • 隐藏实现的细节
    • 选择一小组正交的基本操作
    • 不要在用户背后搞小动作
    • 在各处使用相同的方式做同样的事
    • 释放资源与分配资源应该在同一层次进行
    • 在低层检查错误,在高层处理
    • 只把异常用在异常的情况

    排错

    • 寻找熟悉的模式
    • 检查最近的变动
    • 不用两次犯同样的错
    • 现在排除,不是以后
    • 取得堆栈轨迹
    • 键入之前仔细阅读
    • 把自己的代码解释给别人(小鸭子
    • 把错误弄成可重现的
    • 分而治之
    • 研究错误的计数特性
    • 显示输出,使搜索局部化
    • 写自测代码
    • 写记录文件
    • 画一个图
    • 使用工具
    • 保留记录

    测试

    • 测试代码的边界情况
    • 测试前条件和后条件
    • 使用断言
    • 做防御性程序设计
    • 检查错误的返回值
    • 以递增的方式做测试
    • 首先测试最简单的部分
    • 弄清期望的输出
    • 检验那些应当保持的特征
    • 比较相互独立的实现
    • 度量测试的覆盖面
    • 自动回归测试
    • 建立自包容测试

    性能

    • 自动计时测量
    • 使用轮廓程序
    • 集中注意热点
    • 画图
    • 使用更好的数据结构和算法
    • 让编译程序做优化
    • 调整代码(不要开副本,因为那样会副本爆炸)
    • 不要优化无关紧要的东西
    • 收集公共表达式
    • 用低代价操作代替高代价操作
    • 铺开或者删除代码
    • 缓存频繁使用的值
    • 写专用的存储分配程序
    • 对输入输出做缓冲
    • 特殊情况特殊处理
    • 预先算出某些值
    • 使用近似值
    • 在某个低级语言里重写代码
    • 使用尽可能小的数据结构以节约存储
    • 不存储容易重算的东西

    可移植性

    • 盯紧标准
    • 在主流中做程序设计(不要副本
    • 警惕语言的麻烦特性
    • 使用多个编译系统测试
    • 使用标准库
    • 只使用到处都用的特征
    • 避免条件编译
    • 把系统依赖性局限到独立文件里
    • 把系统依赖性隐藏在界面后面
    • 用正文做数据交换
    • 数据交换时用固定的字节序
    • 如果改变规范就该改变名字
    • 维护现存程序与数据的相容性
    • 不用假定是ASCII
    • 不要假定是某种语言(英语

    作为程序员个人,我们很容易感到自己像是位于某种大机器上的一个小齿轮,必须使用那些强加给我们的语言、系统和工具,做那些我们必须完成的工作。但是,从长远观点看,真正起作用的还是看我们在使用现有东西的情况下工作做得怎么样。

    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    host文件的用处
    探究 Flex 组件的生命周期
    QQ在开发中的应用
    转:linux进程间通信的几种机制的比较及适用场合
    转:Linux 2.4.x内核软中断机制
    转:PLL 锁相环
    转:LPC2214的PLL与定时器设置
    转: V4L2驱动程序架构
    转:linux select 多路复用机制
    [转] Linux 句柄是什么 ?
  • 原文地址:https://www.cnblogs.com/CherryTab/p/14779272.html
Copyright © 2020-2023  润新知