代码的可读性问题分为:
1、命名类问题
a.缺乏统一性 b.没有考虑调用时的情形 c.本地语言命名 d.命名用词不当 e.超长的命名 f.命名含义模糊
g.命名与行为不一致 h.否定式命名 i.无意义命名 j.序号式命名 k.工程名为类名前缀 l.超短命名 m.匈牙利命名法
2、注释类问题
a 每步皆注释 b 错误的注释 c 修改履历注释 d 长方法中的分段注释 e 复制名称的注释 f 复制文档的注释 g 缺少注释 h 自动生成的JavaDoc注释
3、结构类问题
a do-while禁用引起的重复 b switch-case引起的长分支 c 莫名其妙的default d 被忽略的Exception e 全局变量做返回值
f 不必要的Guard代码 g 嵌套过深 h 输出型参数 i 冗余的临时变量 j 不合理的错误号
4、架构类问题
a 关系混乱<循环引用、错误的继承、不当从属关系、大杂烩类> b 重复与类似 c 层层深入的private方法 d 墨守成规
5、风格类问题
a 长方法 b 长参数列表 c 长判定语句 d 长分支 e 魔法数字 f 字符串直接引用 g 冗余的常量定义 h 意思不明的逻辑 i 变量意思不稳定
j 返回值意思不稳定 k 无用的方法或者变量 l 诡异代码
代码的可测试性问题:
1. 难以构建测试夹具
2. 难以拆分做单元测试
代码的可维护性问题:
需求变更难以应对
纠缠不清的BUG