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

news2024/11/16 17:33:29

大家好呀,我是飘渺!

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

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

何为DDD

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

8696f904d00b23e3fd53199f39620190.png 看到这些概念你会不会头皮发麻?

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

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

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

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

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

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

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

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

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

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

结语

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

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

最后,欢迎关注公众号和加入知识星球,获取最新的文章和源码更新。现在加入知识星球,您还可以享受30元优惠券,每天仅需不到3毛钱。

- End-

公众号回复关键词 知识星球 获取限量30元优惠券加入,每天不到3毛钱。目前更新了SpringCloud alibaba开发实战、Kubernetes云原生实战、分库分表实战、设计模式实战、架构实战、一起学DDD 、SpringBoot 老鸟等,还有每周的送书活动等着你....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/547037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MYSQL】事务的4大属性,对隔离级别的详细讲解

目录 1.原子性和持久性 1.1.手动提交事务 1.2.自动提交事务 1.3.事务的原理: 2.隔离性 1.读未提交(Read Uncommitted) 2.读提交(Read Committed) 3.可重复读 4.串行化 3.一致性 4.理解读提交和可重复读的实现…

iptables

目录 iptables概述 netfilter/iptables 关系: 四表五链 四表: 五链: 数据包到达防火墙时,规则表之间的优先顺序: 规则链之间的匹配顺序: 主机型防火墙: 网络型防火墙: ipta…

Uart,RS232,RS485串口通讯协议学习

目录 定义 UART(通常被称为串口,简单意味着使用广泛,具有普适性) RS232 RS232电平转换 RS485 -Recommended Standard (再推荐标准) 485和232的对比 RS485组网 总结 定义 串口是我们都很熟悉的,尤其是需要串口调试的时候,打印信息插…

C语言函数大全-- _w 开头的函数(4)

C语言函数大全 本篇介绍C语言函数大全-- _w 开头的函数 1. _wstrtime 1.1 函数说明 函数声明函数功能wchar_t *_wstrtime(wchar_t *buffer);用于获取当前系统时间并返回一个宽字符字符串表示,格式为 "HH:MM:SS"(小时:分钟:秒) …

2023 Vue开发者的React入门

Vue 和 React 都是流行的 JavaScript 框架,它们在组件化、数据绑定等方面有很多相似之处 本文默认已有现代前端开发(Vue)背景,关于 组件化、前端路由、状态管理 概念不会过多介绍 0基础建议详细阅读 Thinking in React-官方文档 了解 React 的设计哲学 R…

彻底理解粘性定位 - position: sticky(IT枫斗者)

彻底理解粘性定位 - position: sticky 介绍 粘性定位可以被认为是相对定位(position: relative)和固定定位(position: fixed)的混合。元素在跨越特定阈值前为相对定位,之后为固定定位。例如: .sticky-header { position: sticky; top: 10px; }在 视口滚动到元素…

【JavaWeb】--05.Request和Response、JSP、会话技术

文章目录 Request和Response1.概述2.Request对象2.1 Request继承体系2.2Request获取请求数据2.3 IDEA创建Servlet2.4 请求参数中文乱码问题POST请求解决方案GET请求解决方案 2.5 Request请求转发 3.Response对象3.1 Response设置响应数据功能介绍3.2 Response请求重定向3.3 路径…

【全网首测】5G随身Wi-Fi —— 中兴U50 Pro

说到随身Wi-Fi,大家应该都不陌生。 它是一个专门将移动信号转换成Wi-Fi信号的设备,经常被用于旅行和出差场景,也被人们亲切地称为“上网宝”。 现在,我们已经全面进入了5G时代,随身Wi-Fi也升级迭代,出现了支…

人工智能的界面革命,消费者与企业互动的方式即将发生变化。

本文来源于 digitalnative.substack.com/p/ais-interface-revolution 描述了一种社会现象: 随着真实友谊的减少和虚拟友谊的增加,越来越多的人开始将AI聊天机器人视为自己的朋友,甚至建立了深厚的情感纽带。这可能与当前人们越来越孤独的现实…

面向“伙伴+华为”体系,华为产品力的变与不变

在日前举办的“华为中国合作伙伴大会2023”上,华为面向政企市场提出了建设“伙伴华为”体系的发展方向。可想而知,接下来会有更多伙伴加入这一体系,也会有更多客户可以借由这个体系加速完成自身的数字化转型和智能化升级。而产品与技术&#…

luaplus Windows编译(一)

前言 LuaPlus是Lua的C增强,也就是说,LuaPlus本身就是在Lua的源码上进行增强得来的。用它与C进行合作,是比较好的一个选择。 1:准备 luaplus_all 下载地址:https://github.com/jjensen/luaplus51-all jamplus 下载地址 https://gi…

基于神经网络算法的鱼类迁徙轨迹拟合研究

本试验采用HTI Model 291便携型声学标签接收系统,包括的基本部件有:291便携型声学标签接收器1台,590型水听器4根,最新795型声学标签40枚,490-LP 型标签编程器1台,690系列电缆400m,492微型声学标签探测器1台,115VAC型滤波器1台,TagProgrammer 、MarkTags和AcousticTag专…

30个数据科学工作中最常用的 Python 包

Python 可以说是最容易入门的编程语言,在numpy,scipy等基础包的帮助下,对于数据的处理和机器学习来说Python可以说是目前最好的语言。 在各位大佬和热心贡献者的帮助下Python拥有一个庞大的社区支持技术发展,开发两个各种 Python…

Oracle中数据导出成HTML的操作实践

spool是Oracle中将数据到成文件常用的一种工具,但它的强大,不仅仅是数据的导出,在格式和内容上,还可以自定义,甚至生成像AWR一样的统计报告。 参考《SQL*Plus Users Guide and Reference》中第7章"Generating HTM…

光纤仿真相关求解——光纤芯层和包层电磁场分布求解

要求解光纤中的电磁场分布,就要构建合适的物理模型 将光纤假设为圆柱状的波导,求解满足均匀原型介质波导边界条件的麦克斯韦方程组,即可 z分量的亥姆霍兹方程为: 对应在圆柱坐标系下为: 用分离变量法求解Ez&#xff…

如果你不想工作了,先做这3件事

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 英国作家毛姆有句名言:“我从来不会厌倦生活,只是厌倦了那些毫无生气的生活方式。”把这句话稍微修改一下,放在职场也无比适用“我并不厌倦工作,只是厌倦了那些毫无…

第10章_创建和管理表

第10章_创建和管理表 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。 那么,怎样才能把用户各种经营相关的、纷繁复…

从零玩转设计模式之建造者模式-jianzaozhemoshi

title: 从零玩转设计模式之建造者模式 date: 2022-12-08 18:15:30.898 updated: 2022-12-23 15:35:58.428 url: https://www.yby6.com/archives/jianzaozhemoshi categories: - 设计模式 tags: - 设计模式 - 建造者模式 什么是建造者模式? 建造者模式是一种软件设计模式&…

突发!OpenAI 重磅发布 ChatGPT iOS 客户端!无须手续费,直接开通Plus。

大家好,我是GG哥! 今天凌晨,OpenAI又重磅宣布推出ChatGPT的 iOS移动版本。也就是说,从今天开始iOS用户将可以在手机和iPad上免费下载和使用ChatGPT。 整体来说,iOS移动端的ChatGPT主打简洁流畅的风格,全力提…

Qt C++5.9开发指南

第1章 认识Qt 1.1 Qt简介 1、Qt是一套应用程序开发类库,但与MFC不同,Qt是跨平台开发类库。 2、跨平台意味着只需要编写一次程序,在不同平台上无需改动或只是需要少许改动后再编译,就可以形成不同平台上运行的版本。 1.2 Qt的获取与…