【DDD】使用领域驱动设计思想实现业务系统
2017-09-07 23:11
736 查看
最近新接了一个业务系统——社区服务系统,为了快速熟悉和梳理老系统的业务逻辑和代码,同时对老系统代码做一些优化,于是打算花上一个月时间不间断地对老系统服务进行重构。同时,考虑到社区业务的复杂性,想起了之前做用户系统时尝试过的领域驱动建模(简称DDD,英文全称为:Domain Driven Design),思量之下,觉得DDD非常适合这种复杂业务逻辑的系统。毫不迟疑,开搞!
之前在做用户系统时,也尝试使用DDD进行业务建模,但迫于项目工期压力,没有进行深入的学习和建模,最后效果不是很理想,为了避免重蹈覆辙,于是决定先储备好DDD相关知识,再边实践边体会,为此重新学习了Eric Evans的《领域驱动干设计-软件核心复杂性应对之道》和Vaughn Vernon的《实现领域驱动设计》,前者重理论,后者重实现,两者配合相得益彰。
通过这些书籍的学习和实际编码实践,得到了很多有价值的东西,包括但不限于:加深对DDD的理解,业务建模的重新认识,OOP的重新认识,团队协作和讨论......同时,发现两本书中所举例子太过小众,不能很好地消化理解。
感于此,决定将社区系统的DDD实践过程中的读书笔记、问题、解决方式、思考过程、心得记录下来,以飨读者,共勉之。
后面的一段时间,会不间断地整理相关内容放上来,欢迎大家一起讨论。
相关文章链接罗列如下:
【DDD】领域驱动设计精要
【DDD】领域驱动设计实践 —— 架构风格及架构实例
【DDD】领域驱动设计实践 —— 落地框架实现
【DDD】领域驱动设计实践 —— 限界上下文识别
【DDD】领域驱动设计实践 —— 业务建模战术
【DDD】领域驱动设计实践 —— UI层实现
【DDD】领域驱动设计实践 —— Application层实现
【DDD】领域驱动设计实践 —— Domain层实现
【DDD】业务建模实践 —— 发布帖子
【DDD】业务建模实践 —— 删除帖子
【DDD】业务建模实践 —— 人关注人
该系列博文关联的demo代码可参考:community-ddd-demo
之前在做用户系统时,也尝试使用DDD进行业务建模,但迫于项目工期压力,没有进行深入的学习和建模,最后效果不是很理想,为了避免重蹈覆辙,于是决定先储备好DDD相关知识,再边实践边体会,为此重新学习了Eric Evans的《领域驱动干设计-软件核心复杂性应对之道》和Vaughn Vernon的《实现领域驱动设计》,前者重理论,后者重实现,两者配合相得益彰。
通过这些书籍的学习和实际编码实践,得到了很多有价值的东西,包括但不限于:加深对DDD的理解,业务建模的重新认识,OOP的重新认识,团队协作和讨论......同时,发现两本书中所举例子太过小众,不能很好地消化理解。
感于此,决定将社区系统的DDD实践过程中的读书笔记、问题、解决方式、思考过程、心得记录下来,以飨读者,共勉之。
后面的一段时间,会不间断地整理相关内容放上来,欢迎大家一起讨论。
相关文章链接罗列如下:
【DDD】领域驱动设计精要
【DDD】领域驱动设计实践 —— 架构风格及架构实例
【DDD】领域驱动设计实践 —— 落地框架实现
【DDD】领域驱动设计实践 —— 限界上下文识别
【DDD】领域驱动设计实践 —— 业务建模战术
【DDD】领域驱动设计实践 —— UI层实现
【DDD】领域驱动设计实践 —— Application层实现
【DDD】领域驱动设计实践 —— Domain层实现
【DDD】业务建模实践 —— 发布帖子
【DDD】业务建模实践 —— 删除帖子
【DDD】业务建模实践 —— 人关注人
该系列博文关联的demo代码可参考:community-ddd-demo
相关文章推荐
- 大家一直在谈的领域驱动设计(DDD),我们在互联网业务系统是这么实践的
- 领域驱动设计(DDD)在美团点评业务系统的实践
- [.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
- 【DDD】领域驱动设计实践 —— 业务建模战术
- 一缕阳光:DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?
- [.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能
- 【DDD】领域驱动设计实践 —— 框架实现
- [.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
- 【DDD】领域驱动设计实践 —— 框架实现
- 领域驱动设计案例:Tiny Library:业务逻辑与系统结构
- [.NET领域驱动设计实战系列]专题六:DDD实践案例:网上书店订单功能的实现
- DDD 领域驱动设计-Value Object(值对象)如何使用 EF 进行正确映射
- [.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能
- 【DDD】领域驱动设计实践 —— UI层实现
- DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计?
- C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用
- C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用
- DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?
- [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现
- [.NET领域驱动设计实战系列]专题九:DDD案例:网上书店AOP和站点地图的实现