“顺序”是双刃剑,代码量少时方便,一旦程序变大,就会变为“枷锁”,改动一点儿都可能崩塌,而需求变化却是常态。
真相是,不按照顺序,我们依然可以把逻辑正确描述出来。因为逻辑关系自带方向性,可以自动推导。真正适合顺序的地方是计算过程,而非逻辑。
打破“顺序枷锁”,才能从根本上提升代码的稳定性和可维护性,不再需要重构。因为“稳定性”,本就不该依赖于天生脆弱的顺序。
https://github.com/rainforesters/imsure
github.com/rainforesters/imsure
// [编译期间]
// 定义规则,描述依赖关系,与顺序无关
A = X + Y ✅
Y = D - E ✅
X = B * C ✅
// [运行期间]
// 可以在任何位置、任何时间进行赋值
E = 1 // wait 1s
C = 2 // wait 1s
B = 3 // wait 1s
D = 4 // wait 1s
(A: 9, Y: 3, X: 6)

