2024年8月5日
1.概念 CQRS全称:Command Query Responsibility Segregation ,中文名:命令查询与职责分离 2.什么是CQRS CQRS 将系统中的操作分为两类,即「命令」(Command) 与「查询」(Query)。命令则是对会引起数据发生变化操作的总称,即我们常说的新增,更新,删除这些操作,都是命令。而查询则和字面意思一样,……
阅读全文
2024年8月5日
DDD领域驱动设计概述 DDD领域驱动设计是一种软件开发方法,它着重于以业务领域为中心进行软件系统的分析、设计与开发。这种方法由Eric Evans在2003年提出,其核心思想是创建一个领域模型,以指导软件的开发过程。以下是对DDD领域的详细介绍和实践指南。 一、引子 领域驱动设计(DD……
阅读全文
2024年8月5日
一、通过大型项目整合知识体系 在软件开发领域,CRUD(创建、读取、更新、删除)操作、API堆叠和代码重构是常见的工作内容。然而,这些重复性的工作可能会限制个人技术的成长和视野的拓展。为了突破职业发展的瓶颈,提升技术认知,需要通过参与大型项目来整合和应用常用的技术栈。小傅哥在其博客……
阅读全文
2024年8月5日
领域驱动设计概述 领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,它强调以领域为中心,通过分而治之的策略来解决复杂问题。以下是对DDD的详细阐述: 领域与子域 领域通常指的是一个特定的业务或技术领域,如制药、环境、建筑或金融等。在这些领域中,存在……
阅读全文
2024年8月5日
战术模式与领域模型的构建 战术模式是构建有效领域模型的关键组成部分,它们通过一系列构造块模式来实现。这些模式不仅管理复杂性,而且确保领域模型中的行为清晰明确。以下是战术模式的核心要素和作用: 一、战术模式的依赖性 战术模式严重依赖于领域模型和通用语言。它们通过技术模式将领域模型和通用语……
阅读全文
2024年8月5日
域驱动设计(DDD)概述 概念与误解DDD 不是面向对象设计的书,也不是一种以代码为中心的哲学或模式语言。然而,网络上的许多文章和博客过分强调了DDD的战术模式,导致人们误以为DDD仅仅是实体、价值对象和存储库等模式的集合。实际上,DDD 的核心在于通过协作解决问题,而不仅仅是代码实现……
阅读全文
2024年8月5日
DDD(领域驱动设计)是一种软件开发方法论,它帮助团队在构建和维护复杂软件产品时,更有效地管理问题域。在软件开发过程中,并非所有大型软件产品都需要追求完美无缺的设计。实际上,过度追求完美设计可能会消耗不必要的精力和资源。 开发团队和领域专家通过使用分析模式和知识运算,将庞大的问题域……
阅读全文
2024年8月5日
Go 语言内存泄露问题与新版本改进解析 一、内存泄露问题缘起在 Go 语言编程中,time.After 常被用于实现定时任务或延迟操作。然而,如果不正确处理其生命周期,易引发内存泄露问题。内存泄露会随程序运行逐渐累积,影响性能和稳定性。 二、Go 1.23 版本中的变化Go 1.23 版本对 time.NewTimer 和 Time.NewTicker 进行了重要改进: Timer……
阅读全文
2024年8月1日
领域驱动设计概述 软件开发过程中,捕捉和实现复杂的业务逻辑是一项重要任务。领域驱动设计(Domain-Driven Design,简称DDD)是一种以业务模型为核心的软件设计方法。本文将探讨DDD的基本概念、核心原则以及其在软件开发中的实际应用优势。 基本概念 领域驱动设计将业务逻辑作为……
阅读全文
2024年8月1日
领域驱动设计(DDD)入门指南 引言在软件开发过程中,我们常常遇到一些棘手的问题,尤其是在维护和扩展大型系统时。传统的三层架构虽然常见,但它存在诸多不足,例如: 面向数据而非面向对象的建模方式- 过程编程而非面向对象编程- 服务层代码冗长且难以维护- 代码高耦合,难以应对变化- 业务逻辑难以……
阅读全文