有一句话说 :“业务架构是演化出来的而不是预先设计出来的”。起初,我并不是很理解这句话,感觉是一个偷懒的或者经验不足的架构师说的。因为直觉是如果一次性就能达到的结果为什么要绕弯子。
后经过2-3年的工作,终于理解了这句话要表达的意思:
1.业务需求是逐步明确下来的
逐步明确的需求引入了新的变量或者消除了变量,这些都在影响构架分离相同和不同。
2.企业业务的发展规模阶段
在企业业务运行初期,客户量决定了使用单机应用比分布式应用更省运营成本。
2.市场前景的不明确性
为一个小规模的市场做一个大业务量的架构是不明智的。可能市场出现重大变动就会使得花费大量人力物力做出的复杂架构无用武之地。
3.技术的发展
由于开源技术的升级,为了程序稳定性和可维护性,需要重构部分代码
4.架构可能会因为标准化和约定发生复杂度的减少
架构不一定总是向高复杂度发展,可能一个标准化运动,就把所有适配转换的操作全部消除掉了,而保留这个适配转换逻辑平添了维护复杂度,也拖慢了业务处理速度。
5.直接来使用的可以适应不同业务规模的成熟架构可能会引入在当前业务场景永远也不会使用到的代码
古人说:“慧极必伤”。聪明必然比较昂贵,复杂必定不够直接。最简单的单细胞生物繁殖速度远远强于高等多细胞生物,过于理性聪明的人在反复权衡时,可能一个傻子抢先出发了。