用领域驱动实现供应链系统商品录入和出入库设计

作者/分享人:GIM
向 Ta 提问
4年+互联网金融从业经验,7年+ 后端开发经验,负责两个互联网金融项目的架构及设计,精通支付领域,关注数据安全及系统稳定,如今从事在线教育行业,全栈技术爱好者。

随着 Spring 官方对 DDD(领域驱动设计)的不断支持,使用领域设计进行技术选型变的越来越可行,领域驱动在面对复杂快速变化的场景中有着独特的优势,本文将通过实际工作中供应链系统的一个模块来让大家熟悉这门技术的使用。

通过本 Chat 你将会了解:

  1. Spring Data JPA 对领域驱动设计的支持;
  2. 基于事件模型的设计;
  3. 如何将 Service 层原来冗余的代码进行拆解;
  4. 使用 Querydsl 进行查询的封装;
  5. 出入库、商品属性、商品规格的设计;
  6. 生产级别的源代码分享。
已有408人预订
预订达标
文章出炉
     
02月21日
03月11日
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张GIM的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
查看文章评论/提问
niezhihao
看了一些战略设计,但是总觉得还是有那么一点雾里看花。今天看了这个实践,从体验上又加深了对DDD的认识,并且从代码层面了解了DDD在代码层面的实现方式~感谢分享!
☜ 聂 ☞: 咱俩名字拼音很像啊 还都看了同一篇文章 缘分了 我叫niezhimin
Lrwin
第一,域的划分 不对问题域进行研究的领域驱动,我想应该是不完整的。也许作者的这个文章只是为了显示代码?~ 第二,领域服务 or 应用服务 我是在没有搞懂AbstractService的作用是啥? 领域服务还是应用服务? 作者如何看待这个AbstractService类呢? 这些Service实现,都是包了一层对于entity的调用,这个意义何在呢? updaterFor(productRepository) .id(id) .update(product -> product.valid()) .call(); 这样的写法,仅仅利用惰性求值吗? 而reposity暴露的意义有在哪呢? 第三,值对象问题 比如这个类:GoodsTraceLog ,它是一个日志记录的快照,不会随着时间的变化而变化,因为没有生命周期,以及变化状态,很明显这样的类应该属于值对象~。 那作者的值对象设计的概念又在哪呢?。 我只举了这一个例子,这样的问题比比皆是 第四,领域事件处理 GoodsEventProcessor 这种监听器不应该放在基础设施层吗? 领域层即发送领域事件,又处理领域事件? 第五,基础设施层 && SPI 我发现基础设施层和SPI消失了。、 作者有什么考虑吗? 我看这个文章 只是将表驱动的概念换了一种形式进行表达而已~ 当然这只代表我个人愚见~
你可能还喜欢
JVM 问题诊断快速入门
火币集团研发中心
面试字节跳动的一点小经验
Wayne
互联网公司热门面试题:如何保证缓存与数据库的双写一致性?
魏武归心2016
面试官问:为什么在项目中使用消息队列!到底是想考什么?
零下
小程序 · 云开发实战:从 0 到 1 快速开发电商小程序
微信极客WeGeek
如何做好性能压测(二) | 性能压测工具选型对比
阿里巴巴中间件
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效