摘要: 社区业务领域中,存在‘人关注人’的场景,在这个场景中,关系较为复杂,且均表现在‘人’同一个业务实体上,因此,这个case的建模过程值得思考。本文将就‘人关注人’这个业务case的领域建模进行探讨,本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统。 阅读全文
posted @ 2017-10-12 22:59 倒骑的驴 阅读(4479) 评论(5) 推荐(1) 编辑
摘要: 本文是DDD框架实现讲解的第三篇,主要介绍了DDD的Domain层的实现。Domain层是具体的业务领域层,是发生业务变化最为频繁的地方,也是业务系统最核心的一层,也是DDD关注的焦点和难点。这一层包含了如下一些domain object:entity、value object、domain event、domain service、factory、repository等。DDD实践的难点其实就在于如何识别这些object。文末附有领域建模示例。 阅读全文
posted @ 2017-10-10 23:57 倒骑的驴 阅读(26632) 评论(1) 推荐(7) 编辑
摘要: 本文是DDD框架实现讲解的第二篇,主要介绍了DDD的Application层的实现,详细讲解了service、assemble的职责和实现。文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统 阅读全文
posted @ 2017-09-26 00:05 倒骑的驴 阅读(14996) 评论(8) 推荐(3) 编辑
摘要: 前面几篇blog主要介绍了DDD落地架构及业务建模战术,后续几篇blog会在此基础上,讲解具体的架构实现,通过完整代码demo的形式,更好地将DDD的落地方案呈现出来。本文是架构实现讲解的第一篇,主要介绍了DDD的User Interface层的实现,详细讲解了controller、dto的职责和实现,已经UI层使用到的公共组件:CheckLogin、Loging、Validation的职责和实现细节。文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。 阅读全文
posted @ 2017-09-24 19:56 倒骑的驴 阅读(8064) 评论(4) 推荐(1) 编辑
摘要: 本文是基于上一篇‘业务建模战术’的实践,主要讲解‘删除帖子’场景的业务建模,包括:业务建模、业务模型、示例代码;示例代码会使用java编写,文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统 阅读全文
posted @ 2017-09-18 09:00 倒骑的驴 阅读(4760) 评论(6) 推荐(2) 编辑
摘要: 本文是基于上一篇‘业务建模战术’的实践,主要讲解‘发表帖子’场景的业务建模,包括:业务建模、业务模型、示例代码;示例代码会使用java编写,文末附有github地址。相比于《领域驱动设计》原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解。本文是【DDD】系列文章的其中一篇,其他可参考:使用领域驱动设计思想实现业务系统 阅读全文
posted @ 2017-09-17 20:00 倒骑的驴 阅读(12119) 评论(5) 推荐(4) 编辑
摘要: 本文结合团队在COMMUNITY(社区服务系统)业务建模过程中的实践经验,总结得到一些DDD业务建模的小招数,不一定是完美的,但是对我们团队来说很有效用,希望能帮到其他人。后面会陆续将项目中业务建模的一些经典例子放上来,分享给大家。本文为【DDD】系列文章中的其中一篇,其他内容可参考:使用领域驱动设计思想实现业务系统。 阅读全文
posted @ 2017-09-15 00:15 倒骑的驴 阅读(7623) 评论(0) 推荐(2) 编辑
摘要: 本文从战略层面街上DDD中关于限界上下文的相关知识,并以COMMUNITY系统(社区服务系统)为例子,介绍如何识别上下文。限界上下文(Bounded Context)定义了每个模型的应用范围,在每个Bounded Context中确保领域模型的一致性;上下文图(Context Map)表示各个系统之间关系的总体视图;通过持续集成(Continous Integration)确保多个限界上下文的模型统一。 阅读全文
posted @ 2017-09-14 00:38 倒骑的驴 阅读(9557) 评论(4) 推荐(3) 编辑
摘要: 本文主要介绍了基于SpringMVC+mybatis框架对DDD的落地实现。尝试将DDD的思想落地到代码层面。本文为系列文章中的其中一篇,其他内容可参考:使用领域驱动设计思想实现业务系统。 阅读全文
posted @ 2017-09-11 22:25 倒骑的驴 阅读(43609) 评论(17) 推荐(9) 编辑
摘要: DDD为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场景和需求来制定。核心的指导思路归纳为:1、关注点放在domain上,将业务领域限定在同一上下文中;2、降低上下文之间的依赖,通过‘开发主机服务’(REST服务是其中的一种)、‘消息模式’、‘事件驱动’等架构风格实现;3、遵循分层架构模式。 阅读全文
posted @ 2017-09-10 18:36 倒骑的驴 阅读(20221) 评论(0) 推荐(2) 编辑