架构简洁之道
架构简洁之道
对于建模和重构来说,通常都是重要但不紧急的事情;
编程三大范式:
结构化编程: 使用if else 等结构化语句来控制代码,阻止了goto 这样的无限制跳转语句
结构化编程对程序控制器的直接转移进行了限制和规范;
结构化编程最有价值地方:它可将模块递归降解拆分为可测试的单元,进而方便推导(功能性降解拆分)
面向对象编程:
利用多态和依赖导致达到可拔插效果;
并且对程序控制器的间接访问权进行了现在和规范
函数式编程:
对赋值操作的现限制,因为函数中的变量都是不可变的;
SOLID原则:
五大原则首字母
SRP单一职责
OCP开闭原则
LSP里氏替换
ISP接口隔离
DIP依赖倒置
SRP单一职责:
软件模块:最简单的定义是 一个源代码文件,又或者是一组关联紧密的函数和数据结构;
任何一个软件模块都应该只有且仅有一个被修改的原因;任何一个软件模块,都应该只对一类行为负责;
反面案例:
- 多人因为不同的原因,同时修改了同一个文件,导致代码合并冲突
- 服务与不同上下文的功能放到了同一个文件内;(结合DDD来说,首先该文件表达不出任何业务含义)
单一职责原则主要讨论的是 类与函数之间的关系它们的关系必须要内聚,且处于同个限界上下文之中,能够清晰的表达通用语言,
在组件层面:该原则是用来垫定架构边界的核心;在DDD中来区分限界上下文的核心;