六边形架构落地代码分析
Posted hanruikai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了六边形架构落地代码分析相关的知识,希望对你有一定的参考价值。
前言
学习过DDD的朋友们都知道核心有个六边形架构,对于研发人员来说,理解之后如何落地很重要,talk is cheap,show me the code。
从网上看到一个六边形架构的代码demo,结合自己的理解,分析一下,欢迎讨论。
代码结构
代码分析:
- adapters包里面,包括两部分,一部分是外部系统入口,比如rest api等,另一部分是该系统调用外部系统的接口封装(比如调用数据库,调用第三方系统等)。
- config包里面保存bean定义,或者自定义的配置信息
- 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
以上是关于六边形架构落地代码分析的主要内容,如果未能解决你的问题,请参考以下文章