Bad Smell,温故而知新
前些天借着给新员工内培的机会向同事们推荐了老马的《重构》,今天顺便又重温了一下“Bad Smell”那一章,感觉依然还是很有收获的。重构的时机来源于“见识广博者的直觉”,比如:一个类中有多少实例变量才算太多,一个函数有多少行代码才算太长,而这种直觉是锻炼和培养出来的。想来偶尔在看同事代码时不免皱眉也是蛮有道理的,习惯成自然,看到Bad Smell就算没有“标明”,心里也会觉得不畅,总忍不住要把它改掉。老马《重构》一书的一大特色在于其技法的名称基本都可以“望文生义”,因此即使没有看过每个技法的详细说明,也已经基本能够猜个八九分了。从侯sir网站当下来的中文电子版开放了前六章,封底内页有一张Bad Smell与相应重构技法的对应表,准备将它打印出来贴到我的办公桌旁,作为时时提醒之用:)
[Bad Smell]
- Duplicated Code
- Long Method
- Large Class
- Long Parameter List
- Divergent Change
- Shortgun Surgery
- Feature Envy
- Data Clumps
- Primitive Obsession
- Switch Statements
- Parallel Inheritance Hierarchies
- Lazy Class
- Speculative Generality
- Temporary Field
- Message Chain
- Middle Man
- Inappropriate Intimacy
- Alternative Classes with Different Interfaces
- Incomplete Library Class
- Data Class
- Refused Bequest
- Comments
