## C2 Refactor Mean

4W should be known.

What:

开发过程中的两顶帽子：新功能、重构，两者之间不要随意变换和交叉；新功能只涉及功能开发，重构只涉及重构工作。

Why：

- 改进设计
- 增强可读性
- 熟悉代码
- 帮找Bug
- 提高性能

When:

- 随时随处（添加功能时、修改BUG时、CodeReview时、看不顺眼时、..）
- 不为重构而重构（不过早重构）
- 三次法则（事不过三，三则重构）

How:

- DB, 在对象模型和数据库模型之间插入一个**分隔层**，分隔层来做不断变化的这块逻辑，分隔层上下可解耦。
- Interface or API: 重构或调整的时候，往往维护两个，old 调用 new, 同时增加`deprecated` 标注为过时的。
- Ohter ...



## Read List

- [idea万能快捷键(alt enter)，你不知道的17个实用技巧！！！](http://www.jiangxinlingdu.com/idea/2019/07/19/idea.html)
- [Intellij IDEA神器居然还有这些小技巧](https://www.jianshu.com/p/b2263617034c)
- [IDEA Mac下快捷键奇淫技巧]([http://baiwenhui.com/2017/07/22/IDEA-Mac%E4%B8%8B%E5%BF%AB%E6%8D%B7%E9%94%AE%E5%A5%87%E6%B7%AB%E6%8A%80%E5%B7%A7/](http://baiwenhui.com/2017/07/22/IDEA-Mac下快捷键奇淫技巧/))
- 