DailyMart01:一点小想法,一个新的开始!

简介: DailyMart01:一点小想法,一个新的开始!

大家好呀,我是飘渺!

截至目前,我已在公众号和知识星球上发布了多个系列文章,涵盖了SpringBoot老鸟系列、SpringCloud微服务系列、运维监控系列、分库分表系列和Kubernetes云原生系列。尽管每个系列的重点各有不同,它们都关注微服务架构的各个方面和技术要点。然而,随着时间的推移和技术版本的更新,一些曾推荐的技术组件和观点已经不再适用。 例如,Swagger接口管理工具已久未更新,Spring Security OAuth已被废弃,参数分组校验导致了代码混乱,推荐的实体转换组件也不一定是最佳选择。

因此,我一直在思考如何整合这些系列文章的核心内容,创建一个新系列,同时与最新技术发展趋势和实践经验相结合。经过与群友讨论,我决定启动名为 “DDD微服务商城实战” 的新专栏,通过领域驱动设计DDD整合前述系列文章的知识点。


何为DDD


随着微服务架构的普及和广泛应用,领域驱动设计(Domain-Driven Design,简称DDD)逐渐成为业界的热门话题。作为一种建模方式,DDD旨在深入挖掘业务领域的核心需求和概念,将其转化为可执行的代码模型,实现灵活、稳定的系统架构。然而,对于初学者来说,DDD中充满了晦涩难懂的概念,令人不知从何入手。

看到这些概念你会不会头皮发麻?

在我看来,学习DDD就像是学习游泳一样。你可以通过观看教学视频、阅读书籍来掌握游泳的原理,但若不实际跳入水中练习,你将永远无法真正掌握游泳的技巧和窍门。

因此,我们需要通过实际操作来深入理解DDD的设计原则和实践方法。只有在实践过程中不断摸爬滚打,才能够真正掌握DDD的精髓。

  • 首先,让我们站在全局的角度来了解一下DDD。

要掌握DDD,关键是要把握两个设计过程:战略设计 和 战术设计

战略设计主要从业务角度出发,划分业务的领域边界,建立基于通用语言和业务上下文语义边界的限界上下文,实现业务领域模型的构建。

限界上下文可以作为微服务拆分和设计的边界,领域建模可以作为战术设计的输入。

战术设计是从技术视角出发,侧重于对领域模型的技术实现。它主要涉及到微服务的设计和实现,以及领域模型和代码的映射关系。

战略设计和战术设计两者协同完成领域建模以及微服务设计和实现。

  • 接下来看看领域模型、微服务和DDD之间的关系

领域模型是抽象且标准化的可复用模型,其设计遵循单一职责原则。微服务则是领域模型的技术实现。DDD是一种指导领域建模和微服务设计的方法论,遵循高内聚低耦合原则,完成业务端领域拆分、建模到应用端微服务实现的无缝落地。


结语


在本专栏中,我会从零开始构建一个完整的SpringCloud微服务商城系统,并详细讲解如何进行系统设计,一起探讨DDD的设计原则和实践方法,并分享实际项目中的经验教训和一些最佳实践。

本专栏使用的技术栈均为当前主流最新版本,如JDK 17和Spring Boot 3.0。鉴于个人能力所限,文章中难免会出现错误,因此非常欢迎读者提出宝贵的意见和建议,帮助我不断改进本专栏,同时也希望你能一起参与进来。

目录
相关文章
|
领域建模 数据库 数据安全/隐私保护
DailyMart03:如何基于DDD设计商城的领域模型?
DailyMart03:如何基于DDD设计商城的领域模型?
987 0
|
7月前
|
运维 监控 数据可视化
日志服务 HarmonyOS NEXT 日志采集最佳实践
鸿蒙操作系统(HarmonyOS)上的日志服务(SLS)SDK 提供了针对 IoT、移动端到服务端的全场景日志采集、处理和分析能力,旨在满足万物互联时代下应用的多元化设备接入、高效协同和安全可靠运行的需求。
117364 28
|
7月前
|
安全 Windows
win10修改本地host文件,用以增加自定义本地访问域名127.0.0.1
win10修改本地host文件,用以增加自定义本地访问域名127.0.0.1
411 0
|
存储 供应链 Java
DailyMart02:DDD领域分解与微服务划分
DailyMart02:DDD领域分解与微服务划分
353 0
|
消息中间件 缓存 前端开发
新项目,不妨采用这种架构分层,很优雅!
新项目,不妨采用这种架构分层,很优雅!
242 0
|
存储 Java 关系型数据库
基于DDD实现的用户注册流程,很优雅!
基于DDD实现的用户注册流程,很优雅!
341 0
|
设计模式 前端开发 数据库
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
965 0
微服务架构谈(4) plus:DDD 分层架构如何推动架构演进
|
前端开发 JavaScript 数据可视化
深入理解MVVM架构模式
深入理解MVVM架构模式
1042 0
|
Java 应用服务中间件 网络安全
微信公众号本地开发调试 - 无公网IP,内网穿透
微信公众号本地开发调试 - 无公网IP,内网穿透
486 0
|
Java 测试技术 Nacos
Nacos 如何实现生产环境中的灰度配置?
Nacos 如何实现生产环境中的灰度配置?
Nacos 如何实现生产环境中的灰度配置?