[译]领域驱动设计速成课程

原文链接:https://blog.bytebytego.com/p/a-crash-course-on-domain-driven-design

为复杂领域开发软件是一项具有挑战性的任务。

随着问题领域的复杂性不断增长,创建准确表示业务概念、规则和流程的软件变得越来越困难。设计不良的软件很快就会变成难以理解、难以维护和扩展的混乱代码。

领域驱动设计(DDD)为这个问题提供了解决方案。

DDD 是一种软件开发方法,它通过强调对核心领域和业务逻辑进行建模的重要性并使用这些模型作为软件设计的基础来解决领域复杂性。

领域驱动设计的核心是:

  • 将主要焦点放在核心领域上。
  • 基于领域模型的复杂设计
  • 建立技术专家和领域专家之间的协作。

近年来,领域驱动设计的需求愈发迫切。基于微服务和云计算的架构已导致系统由众多以复杂方式交互的小组件组成。如果没有清晰且定义明确的领域模型来指导其设计,此类系统很快就会变成“一团泥球”。

More »

[译]如何组织代码

原文链接:How to Structure Code

软件设计最佳实践,逐层发现包、按功能发现包以及六角形架构/端口和适配器。

在这篇博文中,我将探讨如何构建我们的代码并讨论最佳实践,涵盖三种不同的方法:按层打包、按功能打包以及六边形架构/端口和适配器及其优缺点。

在探索构建代码的不同方法之前,我们需要了解基本的软件设计原则:

  • 内聚力:指模块内各类之间的相互关联程度。
  • 耦合度:指不同模块之间的依赖程度。

img

More »