领测软件测试网
软件测试技术门户2g3r{,Ci us W8XU]重构技术就是应用所有可控技术来改变现有的代码基础。与此类似我们定义了数据库重构也给数据库的改变提供了类似的控制。
软件测试技术门户0rEdyo4`'txk:Zx
r9U2~数据库重构的不同之处在于它必须将三种不同的变化同时完成:
软件测试技术门户M!fl%w5s u-w$I5cQ2JA* 改变数据库计划
-sO.v q$Yi6z;S{
u(E,W@
_\* 进行数据迁移
w-hE{ lb$mQdkvx+?C* 改变数据库存取代码
3b7Lr!O6J|1Sp YL? ZWI$xW\t于是当描述数据库重构时,我们必须描述变化的三个方面,并确保在应用另一个重构之前完成了这三种变化。
软件测试技术门户'\"e'u-Qm{,h.G软件测试技术门户[3KJg0Ob我们必须文档化不同的数据库重构,因此我们还不能详细描述他们。然而这里有几点需要指出:像代码重构一样,数据库重构非常微小。概念链一系列微小的变化,数据库和代码很相似。变化的三个属性使保持小的变化更加重要。
?`$EK1cq8M5nX(pG}dgy%{许多数据库重构,如增加一个字段,可以不必更新所有存取系统的代码来完成。但是如果在使用新计划之前并不了解它,该字段将会无用,因为新计划不知道其变化之处。许多变化,没有考虑整个系统计划,我们称之为破坏性变化,如将一个已经存在的空值列设置为非空。破坏性变化需要多加留心,留心的程度依赖于包含破坏性的程度。一个小破坏性的例子是将一个已经存在的空值列设置为非空,在这种情况下你可以蒙着头做。
:kem9gp软件测试技术门户,|d*sCz9G'}~L而重构将考虑数据库中空值数据。开发人员将更新数据库映射代码,因此更新不会破坏其它人的代码;如果偶然会破坏,开发人员将在建立和使用测试时发现问题。
P[7w;z|6Z软件测试技术门户;{A+m|/sO将一个经常使用的表分成两个是一种更复杂的破坏。在这种情况中提前让所有人知道变化到来很重要,这样他们可以有所准备。此外应该在一个更安全的时刻来实施变化。
?