当谈论软件架构时,我们需要讨论什么?

1.架构

1.1 什么是软件架构?

软件架构的实质就是规划如何将系统切分成组件,并安排好组件之间的排列关系,以及组件之间互相通信的方式。
软件架构的终极目标是,用最小的人力成本满足构建和维护该系统的需求

1.2 整洁架构

1.3 六边形架构 

 

2.原则

2.1 代码原则

  • Single Responsibility Principle:单一职责原则
  • Open Closed Principle:开闭原则
  • Liskov Substitution Principle:里氏替换原则
  • Law of Demeter:迪米特法则
  • Interface Segregation Principle:接口隔离原则
  • Dependence Inversion Principle:依赖倒置原则

2.2 组合原则

2.3 组件聚合

2.4 组件耦合

 

3. 分层与解耦

不论是水平分层还是垂直分层,其核心目的都是将更新频率不同的代码给分开,放入不同的组件中。

3.1 水平分层

  • 表现层/UI层:负责系统的界面展示,通常包括Controller和VO等;
  • 领域层/业务逻辑层:负责处理系统的业务逻辑,通常包括Service,Manager和DTO等;
  • 数据层:负责与DB等底层数据存储介质通信,通常包括Mapper和DO等;

3.2 垂直分层

但是,仅仅做到水平分层是不够的。当业务逻辑比较复杂时,涉及的用例会非常多,这些用例之间的变更原因几乎肯定是不同的,所以还要进行垂直分层,将变更原因不一样的用例切分开。

例如,很多系统的修改操作和删除操作的变更原因和变更频率是不一样的,这时候可以考虑将修改和删除进行解耦。

3.3 解耦方式

 

4.Reference

1. 知乎-怎样提高编程时的架构水平?

2.六大设计原则(SOLID)

posted on 2020-07-16 09:47  KHacker  阅读(196)  评论(0编辑  收藏  举报