重构
重构是不改变软件系统外部行为的前提下,改善它的内部结构。
重构的目的是为了提高代码的质量和性能。
第一次读《重构:改善既有代码的设计》时,我曾整理过一个简单的笔记。最近,因为参与一个重构项目,再一次温习了《重构:改善既有代码的设计》。过程中,萌发了认真总结、整理重构方法的冲动,于是有了这系列文字。
“有病要早治,不要放弃治疗”。多么朴素的道理 ,人人都懂。
病,就是不健康。
人有病,可以通过打针、吃药、做手术来进行治疗。
如果把代码的坏味道(代码质量问题)比作病症,那么重构就是治疗代码的坏味道的药。
个人认为,在重构这件事上,也可以应用治病的道理:
翻译自:https://sourcemaking.com/refactoring/smells/bloaters
代码臃肿(Bloated)这组坏味道意味着:代码中的类、函数、字段没有经过合理的组织,只是简单的堆砌起来。这一类型的问题通常在代码的初期并不明显,但是随着代码规模的增长而逐渐积累(特别是当没有人努力去根除它们时)。
翻译自:https://sourcemaking.com/refactoring/smells/oo-abusers
滥用面向对象(Object-Orientation Abusers)这组坏味道意味着:代码部分或完全地违背了面向对象编程原则。
翻译自:https://sourcemaking.com/refactoring/smells/change-preventers
变革的障碍(Change Preventers)这组坏味道意味着:当你需要改变一处代码时,却发现不得不改变其他的地方。这使得程序开发变得复杂、代价高昂。
翻译自:https://sourcemaking.com/refactoring/smells/dispensables
非必要的(Dispensables)这组坏味道意味着:这样的代码可有可无,它的存在反而影响整体代码的整洁和可读性。
翻译自:https://sourcemaking.com/refactoring/smells/couplers
耦合(Couplers)这组坏味道意味着:不同类之间过度耦合。
不完美的库类(Incomplete Library Class)
当一个类库已经不能满足实际需要时,你就不得不改变这个库(如果这个库是只读的,那就没辙了)。