带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(2)

简介: 带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(2)

带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(1)https://developer.aliyun.com/article/1339989?groupCode=taobaotech


开发规约之术

设计规约

 

image.png传统分层架构

 

 

 

image.png

 

 

传统分层架构通过Controller,Service,Manager,  DAO层来组织业务逻辑,通过贫血模型来传递上下文数据, 所有的业务逻辑不需要考虑怎么组织,统统往Manager和Service中写。如果遇到更加复杂的逻辑,那就加一些设 计模式来处理(本质还是封装Service和Manager)。这种方式属于面向过程开发的事务脚本模式,该方式在一些 比较简单的CRUD场景下比较适用,但当逻辑越来越复杂的时候Manager和Service会越来越膨胀和难以维护。

 

举个例子,我们使用ServiceItemService(服务项相关服务)来处理服务项相关的逻辑,我们需要维护以下层次:

 

  1. 存储逻辑;
  2. 数据转换;
  3. 依赖中间件;
  4. 各种业务逻辑;

 

你会发现一个service承担了太多职责,即要与中间件打交道,又要了解存储细节,还要承担各式各样的业务逻辑。当业务逻辑越来越复杂,未来service和manager会变得越来越难以维护。<阿里巴巴Java开发手册>中使用的架  构,很难解决以上耦合的问题。

 

六边形架构

传统分层的问题核心就在于耦合,而面对复杂的业务系统,我们要做的事情就是解耦。

 

 

 

image.png

 

六边形架构将整体的软件系统一分为二,六边形之外是系统的依赖,六边形之内是系统内部需要实现的业务系统, 六边形外部是我们与外部系统用户的交互,左边是我们的下游,右边是上游依赖。内外部通过适配器来进行交互和解耦。

 

六边形架构落地时与传统的分层模型很类似,但是更加明确了不同分层的职责和边界。


带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(3)https://developer.aliyun.com/article/1339987?groupCode=taobaotech

相关文章
|
存储 Java API
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(4)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(4)
108 0
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(4)
|
应用服务中间件 程序员 数据库
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(3)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(3)
111 0
|
JSON Java 测试技术
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(7)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(7)
115 0
|
IDE 前端开发 Java
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(6)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(6)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(6)
|
存储 SQL 数据库
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(5)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(5)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(8)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(8)
|
搜索推荐 JavaScript
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(1)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(1)
118 0
|
前端开发 算法 JavaScript
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(1)
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(1)
136 0
|
前端开发 程序员 项目管理
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(5)
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(5)
|
前端开发 程序员 TensorFlow
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(6)
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(6)
122 0