什么是六角形架构? -octo

栏目: 数据库 · 发布时间: 6年前

内容简介:Hexagonal Architecture(六角形或六边形) 于2005年由六边架构的初衷是:允许应用程序同样由用户,程序,自动化测试或批处理脚本驱动,并与最终的运行时设备和数据库隔离开发和测试。

Hexagonal Architecture(六角形或六边形) 于2005年由 Alistair Cockburn撰写 ,是一个具有许多优势的软件架构,自2015年以来又重新引起了人们的兴趣。

六边架构的初衷是:

允许应用程序同样由用户,程序,自动化测试或批处理脚本驱动,并与最终的运行时设备和数据库隔离开发和测试。

六角形架构允许隔离应用程序的核心业务,并自动测试其行为,而不依赖于其他任何事情。这可能是该架构引起域驱动设计(DDD)从业者关注的原因。但要小心,DDD和六边形结构是两个相当不同的概念,它们可以相互加强,但不一定一起使用。

最后,这种架构设置起来并不复杂。它基于一些简单的规则和原则。让我们探索这些原则,看看它们在实践中的含义。

六角架构原理

六边形体系结构基于三个原则和技术:

  • 明确区分应用程序,领域和基础结构三个层
  • 依赖关系是从应用程序和基础结构再到领域
  • 我们使用端口和适配器隔离它们的边界

1. 原则:独立的应用程序,域和基础结构三个层

第一个原则是明确地将代码分成三个大层。

什么是六角形架构? -octo

左侧Application是应用程序端

这是 用户 或外部程序 与应用 程序 交互 的一面。它包含允许这些交互的代码。通常,您的用户界面代码,API的HTTP路由,以及使用您的应用程序的程序的JSON序列化都在这里。(banq注:Spring Boot的控制器)

这里也是Actor角色 驱动领域所在 。注意:Alistair Cockburn谈的是应用程序方面的左侧或用户侧。

领域层Domain中心位置

通过领域层隔离左侧和右侧。它包含所有关注和实现业务逻辑的代码。业务词汇和纯粹的 业务逻辑。

右侧基础设施层

在这里,我们可以找到您的应用程序需要什么,它驱动哪些组件进行工作。它包含必要的基础结构详细信息,例如与数据库交互的代码,调用文件系统或处理对您所依赖的其他应用程序的HTTP调用的代码(集成)。

以下原则将实现在 应用程序基础结构 之间实现逻辑分层。

这种分离的第一个重要特征是它将 问题分开 。在任何时候,您都可以选择专注于某个逻辑,几乎独立于其他两个逻辑:应用程序的逻辑,业务的逻辑或基础架构的逻辑。它们在不混合的情况下更容易理解,并且每个逻辑的约束对其他逻辑的影响较小。

另一个特点是我们 将业务逻辑放在代码的最前端 。它可以在目录或模块中隔离,以使其对所有开发人员都明确。它可以在不承担程序其余部分的认知负荷的情况下进行定义,改进和测试。这很重要,因为最终,开发人员对生产中的业务有了解。

相关参考:架构整洁之道


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Bulletproof Web Design

Bulletproof Web Design

Dan Cederholm / New Riders Press / 28 July, 2005 / $39.99

No matter how visually appealing or packed with content a Web site is, it isn't succeeding if it's not reaching the widest possible audience. Designers who get this guide can be assured their Web site......一起来看看 《Bulletproof Web Design》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器