架构整洁之道 心得
结构化编程是对程序控制权的直接转移限制
面向对象编程是对程序控制权间接转移限制
函数式编程是对程序中赋值操作的限制
编程范式实际上是对程序员提出限制,约束某种编写代码的方式,所谓的架构实际上是对不同代码块的排列组合进行优化,软件编程的核心并没有变化,所有的计算机程序无一例外都是有顺序结构,分支结构,循环结构和间接转移这几种行为组合而成的,无可增加,也缺一不可。
不可变性是软件架构设计重点考虑,在软件中出现的竞争问题,死锁问题,并发更新问题都是有可变变量引发,如果变量永远不会被更改,那就不可能产生竞争或者并发更新问题。
通常认为面向对象的核心是抽象,封装,继承,和多态,然而实际上这只是一些特点或者是技术特征,而真正的对象应该是以动态为技术手段来对源代码中的依赖关系进行控制的能力,这种能力让软件架构可以构建出插件式架构,让高层策略性组件与底层实现性组件相分离,底层组件可以被编译成插件,实现独立于高层组件的开发和部署。