有人知道更正式地定义重构的方法吗?
更新。
重构是一对 R = (pre; T),其中 pre 是程序必须满足的前提条件,T 是程序转换。
有人知道更正式地定义重构的方法吗?
更新。
重构是一对 R = (pre; T),其中 pre 是程序必须满足的前提条件,T 是程序转换。
有趣的是,大部分重构都是成对出现的:
应用一对重构操作是一个空转换。
对于一对重构 R, R':
R'(R(代码)) = 代码
重构是一系列保持正确性的变换,但是重构可能会导致比原来更加通用的代码
因此,我们不能仅仅断言对程序P进行重构变换T之前和之后具有相同属性R,而是应该确保重构后的程序P'至少等价于R的属性R'
given program P implies R
refactoring transformation T(P) produces P'
where (P' implies R') and (R' is equivalent to or subsumes R')
P:I -> O
转换之前的保持
T(P) -> R
R:I -> O
变换后仍然成立
我对符号数学有点生疏,但这是一个大致的方向。
顺便说一句,这会是一个不错的硕士论文题目。
嗯,直接来说不是,但从金钱角度来看 - 我可以说是的。我无法给出一个方程式 :)
写得好的代码,没有复杂性(这可能是由于重构)可以节省时间/精力,从而节省金钱。