CodeQuality 2018 程序啪啪啪
CodeQuality
代码质量的主要关注点
- 可靠性
- 输入问题
- 输出问题
- 不完整
- 缺失
- 错误时刻的正确结果
- 错误的格式
- 逻辑问题
- 偏差为一的错误与循环迭代
- 被忽视的极端情况
- 被遗漏的情况,条件测试或步骤
- 被遗漏的方法
- 多余的功能
- 对需求的误解
- 计算问题
- 不正确的算法或计算
- 表达式中错误的操作数
- 表达式中不正确的运算符
- 运算符优先级问题
- 溢出,下溢和符号转换错误
- 并行性与时序问题
- 接口问题
- 不正确的例程或参数
- 没有测试返回值
- 未做错误探查或恢复
- 资源泄漏
- 面向对象功能的误用
- 数据处理问题
- 不正确的数据初始化
- 引用错误的数据变量
- 越界引用
- 不正确的下标使用
- 不正确的比例或数据单位
- 错误的数据打包与解包
- 序列化与反序列化
- 不一致的数据
- 容错
- 管理策略
- 空间冗余
- 时间冗余
- 可复原性
- 安全性
- 脆弱代码
- 缓冲区溢出
- 竞态条件
- 问题API
- 容易出现缓冲区溢出的函数
- 格式字符串漏洞
- 路径和命令行解释器元字符漏洞
- 临时文件
- 不适合做加密用途的函数
- 可篡改数据
- 不可信输入
- 结果验证
- 数据与特权泄漏
- 数据
- 特权
- 分离特权代码
- MPI
- 木马
- 第三方工具
- 时间性能
- 测试技术
- 负载描述
- 受限于
- IO任务
- 内核的任务
- CPU的任务与剖析工具
- 算法复杂性
- 独立的代码
- 与操作系统交互
- 与外设交互
- 非故意交互
- 缓存
- 测试技术
- 空间性能
- 数据
- 内存组织
- 内存层级结构
- 主存及其高速缓存
- 磁盘缓存和后备存储器
- 交换区和基于文件的磁盘存储
- 进程/操作系统接口
- 内存分配
- 内存映射
- 数据映射
- 代码映射
- 访问硬件资源
- 进程间通信
- 堆内存管理
- 堆碎片
- 堆剖析分析
- 内存泄漏
- 垃圾回收
- 栈内存管理
- 栈帧
- 栈空间
- 代码
- 设计
- 编码
- 构建
- 可移植性
- 操作系统间
- 硬件与处理器架构
- 数据类型的属性
- 数据存储
- 特定于机器的代码
- 编译器与语言扩展
- 编译器错误
- 图形用户界面GUI
- 国际化与本地化
- 字符集
- 区域
- 消息
- 可维护性
- 测量可维护性
- 相关指数
- OO的度量
- 包相关性度量
- 可分析性
- 一致性
- 表达式格式化
- 语句格式化
- 命名惯例
- 语句级注释
- 版本注释
- 视觉结构: 块与缩进
- 表达式,函数以及方法的长度
- 控制结构
- 布尔表达式
- 可辨认性与内聚性
- 依赖和耦合
- 代码块注释
- 数据声明注释
- 恰当的标识符名字
- 依赖的位置
- 不确定性
- 可复查性
- 可变化
- 稳定性
- 封装与数据隐藏
- 数据抽象
- 类型检查
- 编译时断言
- 运行时检查和查看时断言
- 可测试性
- 单元测试
- 集成测试
- 系统测试
- 测试覆盖度分析
- 偶发性测试
- 开发环境的影响
- 增量构建
- 调整构建性能
- 测量可维护性
- 浮点运算
- 浮点数表示
- 量度误差
- 舍入
- 内存格式
- 规格化和隐含的一位
- 阶码偏移
- 负数
- 反向规格化数
- 特殊值
- 舍入
- 溢出
- 下溢
- 消去
- 合并
- 无效运算
- 浮点数表示
代码质量的参考资料
- 代码质量 http://book.douban.com/subject/2342995/
- 相关支持工具
- 静态代码分析工具
- checkstyle
- findbug
- PMD
- 自动重构工具
- 静态代码分析工具