收藏
0有用+1
0

软件重构

改进已经写好的软件的设计
软件重构指在不改变软件功能与外部可见行为的前提下,通过系统化调整代码结构提升可读性、可维护性与可扩展性的技术 [1]。其概念起源于1990年代,与极限编程方法学紧密关联,强调通过单元测试保障重构安全性,并借助自动化工具实现代码引用点的同步修正 [2]。核心方法借鉴数学因式分解思想,通过拆分重复逻辑、优化命名规范及简化条件表达式等手段改善软件内部设计 [3]
该技术最初由Martin Fowler在《重构:改善既有代码的设计》中系统阐述,后随敏捷开发普及成为软件维护常规环节。2000年后,工具化重构逐步成熟,支持代码风格统一、冗余删除等标准化操作 [2]。2020年代出现多目标优化方法,结合遗传算法与设计原则度量,实现包级别重构优化 [3]。实践层面通过"两顶帽子"原则分离重构与功能开发,采用小步迭代降低风险 [1-2]。典型案例显示重构可减少49.6%冗余代码并提升模块内聚性 [3-4]
中文名
软件重构
情    况
不改变软件的功能和外部可见性
目    的
提高清晰性、可扩展性和可重用性
支    持
单元测试

简介

播报
编辑
软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

重构代码

播报
编辑
重渗局构一词通常是指在不改变代码的外部行为情况下而修改源代码,有时非正式地成为“清理干净”。在极端编程方法学中,重构常常是软件开发循环桨陵挨想的一部分: 开发总是或者增加新的测试和功能,或者重构代码来改善内部的一致性和清晰性。测试保证了重构凳笑盼没有改变代码的外部行为。
重构是代码维护中的一部分,既不修正错误,又不增加新的功能性。而是用于提高代码的可读性或者改变代码的结构和设计,使其在将来碑犁浆更骗体杠容易被维护。特别是,在现有的程序的结构下,给一个程序增加一个新的行为会非常困难,因此开埋樱采发人员可能先重构这部分代码,使加入新的行为变得容易。
这个术语是从数字与多项式的因式分解类比而来。如,x2 − 1 可以被分解为 (x + 1)(x − 1), 这样揭示了前面的形式不可见的内部结构(如两个根+道催乐1和-1)。同样,在软件重构中,在可见结构上的改变通常会揭示原有代码中“隐藏”起来的内部结构。
为了简化测试,重构是分步骤完成的。当重构结束后,任何行为上的变化无疑都是错误并可以与调试一个元雅一个新特性的问题分开解决。