#ddd
文章平均质量分 90
大头讲架构
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DDD记账软件实战四|从0-1设计实现企业级记账微服务
本文基于DDD方法对记账系统进行微服务设计,识别出账本、记录、分类三大核心领域。通过业务流程分析,详细阐述了各领域的业务逻辑与规则,包括账本的成员管理、记录的权限验证、分类的层级约束等。文章提出了分层架构方案,展示了从网关层到基础设施层的完整设计,并给出数据存储模型。重点讲解了聚合根、值对象等DDD核心概念在记账场景的应用,通过UML图呈现领域模型关系。设计亮点包括:以账本为聚合根管理记录、值对象封装业务规则、领域事件解耦等,为后续功能实现奠定基础。原创 2025-10-12 15:29:32 · 1075 阅读 · 0 评论 -
DDD记账软件实战三|从0-1手把手设计可扩展的登陆系统功能实现并落地 基于Java Spring Cloud
本文分享了基于DDD的记账软件实战第三部分,重点介绍了登录系统的设计实现。作者从职高毕业成长为资深开发的经验出发,提出采用策略模式+工厂模式构建灵活可扩展的登录架构。通过业务流程分析、业务架构图、系统架构图、UML类图等设计步骤,将登录功能抽象为统一入口,支持用户名密码、手机验证码、微信等多种登录方式。核心采用认证门面屏蔽细节,策略工厂管理不同认证方式,实现开闭原则。文章展示了从需求分析到代码落地的完整过程,体现分层架构和领域驱动设计思想,为开发者提供可复用的认证系统设计方案。原创 2025-10-11 11:37:01 · 1400 阅读 · 0 评论 -
DDD企业级记账软件实战二|从0-1创建用户微服务和记账微服务基于Spring Cloud
本文介绍了基于DDD架构的记账软件实战开发过程。作者大头作为前上市公司架构师,分享了从职高毕业到技术专家的成长经验。项目采用微服务架构,划分用户服务和记账服务,并详细阐述了六层目录结构(starter/api/application/domain/infrastructure/common)。文章重点讲解了支撑服务(网关、缓存、日志收集等)的技术选型,并展示用户服务的创建步骤,包括Spring项目初始化、Maven依赖配置和模块划分。该系列旨在帮助不同背景的开发者掌握企业级开发流程,突破职业瓶颈。原创 2025-10-11 11:32:40 · 892 阅读 · 0 评论 -
解放双手的利器TypeHandler,别再getter,setter了
本文介绍了如何利用MyBatis自定义TypeHandler实现数据库值与Java值对象的自动转换。通过UserStatus枚举+值对象的案例,展示了从数据库的Integer类型自动转换为UserStatus对象的过程。关键步骤包括:创建值对象和枚举类,编写自定义TypeHandler实现类型转换逻辑,在PO类或XML中配置TypeHandler,以及注册TypeHandler到MyBatis配置。这种方案有效解决了手动转换的繁琐问题,使仓储层代码更加简洁,适用于所有需要将数据库基本类型转换为复杂值对象的场原创 2025-10-09 11:05:52 · 305 阅读 · 0 评论 -
用户状态(UserStatus) 和 用户类型(UserType) 应该如何在领域模型中表达?
本文探讨了在领域驱动设计(DDD)中如何正确表达用户状态和用户类型。传统使用Integer类型存在可读性差、安全性低、违反封装等问题。最佳实践是将它们建模为值对象(Value Object),这种方式能提供明确的领域语义、不变性控制和合法性验证。文章进一步提出了"枚举+值对象"的混合建模方案,既保持了类型安全又增强了语义表达,并展示了如何在MyBatis中实现持久化映射。这种建模方式能更好地将业务概念映射到代码实现中,符合DDD的领域建模思想。原创 2025-07-28 14:26:10 · 718 阅读 · 0 评论 -
10分钟理解如何进行DDD领域建模,实操设计企业级项目,从零开始划分领域和聚合
本文介绍了如何使用领域驱动设计(DDD)方法构建记账软件。首先通过事件风暴分析识别出核心命令、业务流和事件;然后进行领域建模,划分出用户、账本、收支记录等实体和值对象;接着将相关对象组合成用户聚合、账本聚合等4个聚合;最后将聚合划分为用户领域和记账领域两个领域。文章详细讲解了DDD中的核心概念如聚合根、实体、值对象等,并强调实践的重要性,为读者提供了从零开始构建DDD项目的完整思路。下一篇文章将演示如何将领域模型转换为代码实现。原创 2025-07-28 14:24:44 · 601 阅读 · 0 评论 -
为什么大厂都在使用DDD?
领域驱动设计(Domain-Driven Design,简称DDD)是由美国软件专家埃里克・埃文斯(Eric Evans)在2004年提出的软件设计方法论,旨在解决复杂软件系统开发过程中业务逻辑与技术实现之间的矛盾,提升软件系统的可维护性、可扩展性和灵活性。What: 它是一种设计思想、一种指导原则。When: 设计微服务的时候,或者说,不知道怎么拆分微服务的时候。Why:为什么要用它,上面其实说了,不知道怎么拆分微服务的时候,可以用它来指导你如何拆分微服务。How:这个后面讲。原创 2025-03-21 10:06:32 · 604 阅读 · 0 评论
分享