代码改变世界

第二部分 从基础构件开始:编程范式

2021-12-07 23:26  张紫荣  阅读(31)  评论(0编辑  收藏  举报

第3章 编程范式总览

  • 结构化编程
    结构化编程对程序控制权的直接转移进行了限制和规范
  • 面向对象编程
    面向对象编程对程序控制权的间接转移进行了限制和规范
  • 函数式编程
    函数编程对程序中赋值过行了限制和规范

第4章 结构化编程

  • 可推导性: 人们可以用顺序结构、分支结构、循环结构这三种结构构造出任何程序
  • goto是有害的
  • 功能性降解拆分: 可将模块递归降解为可推导的单元
  • 形式化证明没有发生
  • 科学来救场
  • 测试:测试的作用是让我们得出某段程序已经足够实现当前目标这一结论。

功能性降解拆分仍然是最佳实践之一

第5章 面向对象编程

  • 封装
  • 继承
  • 多态
  • 依赖反转

第6章 函数式编程

  • 不可变性与软件架构
    软件架构师要操作变量的可变性。因为所有竞争问题、死锁问题、并发更新问题都是由可变变量导致的。
  • 可变性的隔离
    常见方式是将应用程序或内部服务进行切分,划分为可变的和不可变的两种组件。
    我们通常会采用某种事务型内存来保护可变变量
    软件件架构构师应该着力于将大部分处理逻辑都归于不可变组件中,可变状态组件的逻辑应该越少越好。
  • 事件溯源
    在这种体系下,我们只存储事务记录,不存储具体状态,当需要具体状时,我们只要从头开始计算所有的事务即可。