更新时间:2022-08-03 10:12
软件重构是指在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高软件的清晰性、可扩展性和可重用性而对其进行的改造。简而言之,重构就是改进已经写好的软件的设计。
软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。
重构一词通常是指在不改变代码的外部行为情况下而修改源代码,有时非正式地成为“清理干净”。在极端编程方法学中,重构常常是软件开发循环的一部分: 开发总是或者增加新的测试和功能,或者重构代码来改善内部的一致性和清晰性。测试保证了重构没有改变代码的外部行为。
重构是代码维护中的一部分,既不修正错误,又不增加新的功能性。而是用于提高代码的可读性或者改变代码的结构和设计,使其在将来更容易被维护。特别是,在现有的程序的结构下,给一个程序增加一个新的行为会非常困难,因此开发人员可能先重构这部分代码,使加入新的行为变得容易。
这个术语是从数字与多项式的因式分解类比而来。如,x2 − 1 可以被分解为 (x + 1)(x − 1), 这样揭示了前面的形式不可见的内部结构(如两个根+1和-1)。同样,在软件重构中,在可见结构上的改变通常会揭示原有代码中“隐藏”起来的内部结构。
为了简化测试,重构是分步骤完成的。当重构结束后,任何行为上的变化无疑都是错误并可以与调试一个一个新特性的问题分开解决。