修改代码的起因
四种:
(1)添加新特性;新需求需要实现(添加新的功能或者添加新功能并替换之前的功能)
(2)修正bug;
(3)改善设计;
(4)优化资源使用。
添加新特性与修正bug
对于程序员来说,可以统一看成是改变软件的行为。
行为:
行为对于软件来说是最重要的一样东西。软件的用户要依赖于软件的行为。用户喜欢我们添加行为(前提是新的行为确实是他们所需要的),然而如果我们改变或移除了他们原本所依赖的行为(引入bug),那么他们就不会再相信我们。
行为与功能:
行为包含功能、性能、可维护性等
功能,更多的是客户视角,满足客户目标
软件行为变迁类型:
- 改变行为
修改代码 - 添加代码
添加代码并调用它
【注】添加一个方法并不会改变代码的行为,除非我们以某种方式调用了该方法。
改善设计
改变既有软件的结构和组织,以便更易于维护。
重构,进行一系列的结构上的小改动,并通过测试的支持来使得代码的修改更容易着手。
重构过程中不应当有任何功能上的改变,行为可能存在改变。
优化
通常指时间或资源使用相关的修改
重构与优化异同点:
不同点:重构改变程序结构,优化通常指修改程序的性能或资源使用情况
相同点:在改变某些东西的过程中保持软件的功能不变。
综合
修改程序可能带来的改变:
结构、功能及资源使用
行为改变情况,无论哪种修改,不变的更多
修改可能存在的问题:
不知道在修改的过程中哪些行为存在被连带改变的风险。
保留既有行为不变是软件开发中最具挑战性的任务之一。
减少修改风险
修改前需考虑的问题:
(1)我们要进行哪些修改?
(2)我们如何得知已经正确地完成了修改?
(3)我们如何得知没有破坏任何(既有的)东西?
修改是不可避免的,我们应该努力的去修改