searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

整洁架构

2023-10-16 09:33:59
40
0

三大编程范式

  • 结构化编程:对程序控制权的直接转移进行了限制和规范(Dijkstra提出)
    将模块递归降解拆分为可推导的单元(创造可证伪程序单元),将大型问题拆解为一系列高级函数的组合。
  • 面向对象编程(封装、继承、多态、依赖反转)
    以对象为手段来对源代码中的依赖关系进行控制。构建插件式架构、让高层策略性组件与底层实现性组件相分离,底层组件可编译成插件,实现独立于高层组件的开发和部署。
  • 函数式编程(变量不可变)
    所有竞争问题、死锁问题、并发更新问题都是可变变量导致。
    一个架构设计良好的应用程序应该将状态修改的部分和不需要修改状态的部分隔离成单独的组件,然后用合适的机制来保护可变量。应该着力于将大部分处理逻辑都归于不可变组件当中,可变状态组件的逻辑应该越少越好。

五大编程设计原则(SOLID原则)

  • 单一职责原则(SRP):每个软件模块都有且只有一个需要被改变的理由。主要讨论的是函数和类之间的关系。在组件层面上,我们可以将其称为共同闭包原则;在软件架构层面,它则是用于奠定架构边界的变更轴心。
  • 开闭原则(OCP):设计良好的计算机软件应该易于扩展且抗拒修改。让系统易于扩展,同时限制其每次被修改所影响的范围。实现方式是将系统划分为一系列组件,并且将这些组件间的依赖关系按层次结构进行组织,使高阶组件不会因低阶组件被修改而受到影响。
  • 里氏替换原则(LSP):如果想用可替换的组件来构建软件系统,那么这些组件就必须遵守同一个约定,以便让这些组件可以相互替换。一旦违背了可替换,该系统架构就不得不为此增添大量复杂的应对机制。
  • 接口隔离原则(ISP):避免不必要的依赖。如果依赖了它不需要的东西,就会带来意料之外的麻烦。
  • 依赖反转原则(DIP):高层策略性的代码不应该依赖实现底层细节的代码。多使用稳定的抽象接口,少依赖多变的具体实现。源代码依赖方向永远是控制流方向的反转。应避免在代码中写入与任何具体实现相关和容易变动的名字。
0条评论
0 / 1000
1****m
1文章数
0粉丝数
1****m
1 文章 | 0 粉丝
Ta的热门文章查看更多