1.编程三范式
1.1 结构化编程
1.2 面向对象编程
1.3 函数编程
编程范式与软件架构的关系,多态是跨架构边界的手段,函数编程是规范和限制数据存放位置与访问权限的手段,结构化编程则是各模块的算法实现的基础。这些和软件架构的三大重点不谋而合:功能性、组件独立性、数据管理。
2.结构化编程
结构化编程是一个普遍采用的编程范式,并不是最早提出的,最接近图灵机设计规范。
结构化编程是对对程序控制权的直接转移的限制
顺序结构、分支结构、循环结构
从最小的函数到最大的组件,软件研发的过程都和科学研究非常类似,他们都是有证伪驱动的。软件架构师需要定义可以方便进行证伪的模块、组件以及服务。为了达到这一目的,架构师需要将类似结构化编程的限制方法应用再更高的层面上。
3.面向对象编程
结构化编程是二个普遍采用的编程范式,早于结构化编程编程被提出。
面向对象编程是对程序控制权的间接转移的限制
"数据与函数的组合"
"一种对真实世界进行建模的方式"
"封装、继承、多态"
面向对象编程就是以多态为手段对源码中依赖关系进行控制的能力,这种能力让软件架构师可以构建出某种插件架构,让高层策略组件与底层实现性组件相分离,底层组件可以被编译成插件,实现独立于高层组建的开发部署。
4.函数编程
函数编程是最晚普遍采用的编程范式,但是是最早提出的。
函数编程是对程序中赋值操作的限制
函数编程语言中的变量是不可变的,不可变性解决了软件架构中可变性带了的问题(竞争问题、死锁问题、并发更新问题)。在软件架构设计时考虑对对函数、组件以及服务进行可变性隔离。