重新组织代码
1. 抽取不相关的子问题
- 看看某个代码块,该段代码的高层次目标是什么?
- 对于每行代码,它是直接为了目标而工作的吗?
如果足够的行数是在解决不相关的子问题,抽取代码到独立的函数中
什么样的代码段应该独立出来 ?
- 纯工具代码,字符串操作,文件读写等等
- 其他多用途代码,额外的好处是更好进行单元测试
- 创建大量通用的代码,完全的从项目中解耦出来
- 简化已有的接口
按照新的需求重塑接口
2. 一次只做一件事
同时在做几件事的代码难以理解,一个代码块可能初始化对象,清除数据,解析输入,然后物理逻辑,所有都在一起进行,纠缠在一起,非常难以理解。
一次只做一件事的流程:- 列出代码所做的所有任务,这里的任务没有严格的定义,可以小到确保这个对象有效
- 尽量把这件任务拆分到不同的函数中去,或者是代码中的不同段落中
2. 把想法变成代码流程
- 像对着一个同事一样用自然语言描述代码要做什么
- 注意描述中所用的关键字和短语
- 写出与描述所匹配的代码
3. 少写代码
- 最好读的代码是没有代码
- 别费神实现自己觉得后面会用到的功能
- 熟悉周边的库
- 保持自己的代码库越小,越轻量级越好
- 创建越多越好的工具来减少重复代码
- 减少无用代码或没有用的功能
- 让你的项目保持分开的子项目状态
- 小心代码重复