重生后我用DDD重构项目-开篇

221 阅读2分钟

领域驱动设计(Domain-Driven Design,DDD)是一种以业务为核心的软件开发方法论,通过深入理解业务领域,将业务知识转化为系统中的领域模型,从而帮助团队构建更为灵活、高效、可维护的软件系统。它由著名软件工程师Eric Evans首次提出,至今仍是解决复杂业务需求的强大工具。

我这两年也看了很多领域驱动相关的书籍,但是大部分书籍都着重对战略设计的部分进行讲解,使得像我这样的没机会实战的人对DDD一直都是一种云里雾里的感觉。最近我刚好读到了一本书叫《悟道领域驱动设计》,这本书着重的对战术设计方面进行了大面积的讲解,书中还分享了作者在实践领域设计以来沉淀出来的提效工具和实战经验,看的我热血沸腾,有一种大学时看完《社交网络》这部电影的冲动,所以我决定开个坑,对一个商场项目进行重构,使用的技术和理念全都来自于《悟道领域驱动设计》这本书。

由于领域驱动设计一直都伴随着微服务,所以本次重构的项目中也会将商品,会员,库存等模块微服务化,其中涉及到上下游的事务问题,也会使用分布式事务来实现。并且也会将书中学到的CQRS,事件溯源也都应用到本次的项目中,希望能够创建一个可以让新手很容易去学习的开源项目,就像我当年去git上搜项目学ssm一样。

接下来我会先进行一次业务梳理,并且模拟事件风暴的方式来进行领域建模,因为只是一个学习项目,所以我只会对其中最基本的业务进行建模,到时候欢迎大家再评论区讨论学习。

相关的git项目我会在下一篇文章中发出来,欢迎大家一起参与进来,共同推进DDD的推广,愿国内程序猿们能够有一天可以因为DDD而不再加班,让项目变的易扩展,没BUG!!