敏捷软件开发——重构篇

    随着时间的推移,现有的代码会 有 新特性、新功能的添加,需要处理一个又一个的错误,代码的结构逐渐退化。如果对此置之不理的话, 这种退化最终会导致纠结不清,难于维护的混乱代码。 xp(极限编程 eXtreme Programming)团队通过经常性的代码重构来扭转这种退化。重构就是在不改变代码行为的前提下,进行一系列小的修改,旨在改进系统结构。每个改造都是微不足道的,几乎不值得去做,但是所有的这鞋改造叠加在一起,就形成了对系统设计和构架的显著的改进。

    每一个软件模块都有单个职责:

        1、它运行起来所完成的功能。这也是该模块得以存在的原因。

        2、它要对应变化。几乎所有的模块在它们的生命周期中都要变化,开发者的职责保证这种改变应该尽可能的简单。一个难以改变的模块是拙劣的,即使能够工作,也需要对它inx修正。

        3、要和阅读它的人进行沟通。对模块不熟悉的开发人员应该能够比较容易地阅读并理解它。哟个无法进行沟通的模块也是拙劣的,童谣需要对它进行修正。

    在每次细微的改造之后,我们运行单元测试确保改造后没有造成任何破坏,然后去做下一次改造,如此往复,周而复始,每次改造之后都要运行测试。通过这种方式,我们可以在改造系统的同时,保持系统可以工作。重构是持续进行的, 而不是在项目结束时、发布版本时、迭代结束时、甚至每天快下班时进行的。重构是我们没隔一小时或者半小时就要去做的事情。通过重构,我们可以持续地保持尽可能干净、简单并且具有表现力的代码。

    总结:

    重构的目的是为了每天 清洁 你的代码,代码的清洁怎么强调都不过分!

    重构不仅 要使程序结构的各个部分之间相互隔离,也就是节耦合,甚至包括一个变量名、函数名的修改。

    重构应该是伴随着开发一起进行的。


思考:通过重构使得程序结构的各部分之间相互隔离,你也许会担心提取出仅仅只会调用一次的函数会对性能造成负面的影响。实际上,提取出函数所增加的可读性是值得花费额外的一些小开销的。然而,也许那些少许的开销存在于深深的内部循环中,这将会杂牌成较大的性能损失。所以此处得谨慎处理。。。

 

你可能感兴趣的:(敏捷软件开发-读书笔记)