重构:百问

   重构的过程就是问问题的过程。针对在重构的过程中我脑中经常浮现的问题,我原本想整理一个“百问”,但一口气写下来发现只能写到50个问题,就留点让大家补充吧?当然我想到了也会及时更新。争取早日可以完善成一个重构的Checklist。

 

项目结构(5)

项目结构是否和实际是否匹配?

是否有分层? 做蛋糕

是否有分块? 切蛋糕

顺序是否合理? 优先级

是否层次太多?

 

文件(2)

命名是否一致合理?

和一个类对应还是多个类对应?

 

类(8)

是否有存在必要?

存在相似几个类时是否需要抽象提取父类?

继承是否合理?

继承树是否太深?

是否是万能类,核心功能和杂事都一手包办?

是否是无能类,没有实质功能?

是否和父类和谐?

是否合理实现协议?

 

方法(19)

是否有存在必要?

类方法还是对象方法更合理?

访问权限(public、protected或者private)是否合理?

是否名不副实?

粒度是否需要调整?

是否太大太杂,需要提取新方法?

是否无实质内容,需要合并?

结构是否清晰,可以一眼就可以看清梗概?

结构是否可以调整成对称?

继承时对应的父类方法是否处理合适?

是否嵌套太深?

是否分支太多?

各个分支是否类似,可以统一处理?

方法是否独立?

方法对其他的依赖是否可以解除?

方法实现时是否有很多数据?

数据是否可以形成一个模型?

数据是否可以通过文件配置?

空行、空格的使用是否合理一致?

 

注释(8)

是否只是逐行解释代码?

是否可以通过合理命名和提取方法避免?

是否是注释代码?

被注释的代码是临时的还是永久的?

内容是否和代码一致?

风格是否统一? // VS /* */

语言是否统一?中文 VS 英文 VS 拼音

位置是否合理?是独立行还是在代码尾部?

 

变量(6)

成员变量是否需要?

变量命名是否合理?

命名是否有拼写错误?

命名是否缩写不合理?

命名是否过长?

命名是否一致?count VS number

你可能感兴趣的:(重构,职场,休闲,百问)