前言
学习过DDD的朋友们都知道核心有个六边形架构,对于研发人员来说,理解之后如何落地很重要,talk is cheap,show me the code。
从网上看到一个六边形架构的代码demo,结合自己的理解,分析一下,欢迎讨论。
?
代码结构
代码分析:
adapters包里面,包括两部分,一部分是外部系统入口,比如rest api等,另一部分是该系统调用外部系统的接口封装(比如调用数据库,调用第三方系统等)。config包里面保存bean定义,或者自定义的配置信息domain是领域逻辑核心,其中model包里面定义领域对象及其行为(非贫血模型),port里面定义了inbound 便宜香港vps 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
03837370