- 事不过三,三则重构。
- 首先写出可调的程序,然后调整它以求获得足够速度。
- 条件和循环也是提炼信号。
- 针对外界变化的所有相应修改,应该只发生在单一类中,这个类的所有内容随外界变化。
- 一个函数使用几个类的功能,它应该被放在最多被此函数使用的数据一起。
- 对于出现在不同类/方法内的一些绑在一起的数据,应该给它们设置对象。
- 两个帽子原则:不要边写代码边重构,带上写代码的帽子,觉得需要重构了,再带上重构的帽子去做,如此反复。
- 先编写测试代码可以将关注点放在接口而非实现。
- 重构出来的函数优先使用private修饰,日后可以慢慢放开。
- 重构时可能会有性能问题,但这不是主要问题,如果没有重构,好的优化方案就可能与你失之交臂。性能实在太糟糕,临时变量放回去也很容易。
- 临时变量如果被赋值多次,尽量使它们只使用一次。
- 先写测试,再写类。
- 条件反转有时候可以帮助写清晰的代码。
- 使用空对象可以方便的处理很多东西,它一定是常量。非常适合使用Singleton模式。
- 一个好习惯:明确地将“修改对象状态”的函数(修改函数)和“查询对象状态”的函数(查询函数)分开设计。
- 继承是避免重复行为的一个强大工具。
- 对于辣鸡代码,不必一开始就完成整个系统的重构,只需要满足需求就行了,反正之后还可以回来重构