六边形架构落地代码分析

Posted hanruikai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了六边形架构落地代码分析相关的知识,希望对你有一定的参考价值。

前言

学习过DDD的朋友们都知道核心有个六边形架构,对于研发人员来说,理解之后如何落地很重要,talk is cheap,show me the code。

从网上看到一个六边形架构的代码demo,结合自己的理解,分析一下,欢迎讨论。

 

代码结构

代码分析:

  1. adapters包里面,包括两部分,一部分是外部系统入口,比如rest api等,另一部分是该系统调用外部系统的接口封装(比如调用数据库,调用第三方系统等)。
  2. config包里面保存bean定义,或者自定义的配置信息
  3. domain是领域逻辑核心,其中model包里面定义领域对象及其行为(非贫血模型),port里面定义了inbound port和outbound port。inbound port指的是ArticleService,处理进来的请求;outbound port解决Article领域的外部依赖,这里指的是下面的接口,但是他们的实现都是在adapter包里面!!!DDD里面的Repository是数据存储的地方,不要狭义的理解为仅仅是数据库而已,从外部服务读取也是,此demo中的author数据就是。
  •  处理Article数据的ArticleRepository port
  • 查询作者信息的ArticleRepository port
  • 通知作者的AuthorNotifier port
  • 发布信息到社交媒体的SocialMediaPublisher port
  • 发送消息的ArticleMessageSender port

 

代码位置:https://github.com/dziadeusz/hexagonal-architecture-by-example

运维常见脚本位置:https://github.com/oldratlee/useful-scripts/tree/dev-2.x/bin

以上是关于六边形架构落地代码分析的主要内容,如果未能解决你的问题,请参考以下文章

六边形架构落地代码分析

六边形架构落地代码分析

六边形架构落地代码分析

领域驱动设计和CQRS落地

干货 | 特定企业微服务架构落地的研究与实践

微服务与微服务架构