软件架构设计与应用:从领域建模到事件优先架构
在软件开发领域,选择合适的编程范式和架构风格至关重要。现代面向对象语言功能强大且优势明显,激励着开发者使用它们。初期可以尝试采用“函数核心与命令式外壳”的方法进行函数式编程。
领域建模工具应用
领域建模是进行实验的理想场景。实验应快速进行,使用能最佳描述所建模业务概念的名称和行为表达式。可以借助便利贴、虚拟白板、协作绘图工具,当然也可以在源代码中进行。
领域驱动设计有多种战术建模工具,其使用需根据具体建模情况而定:
- 实体(Entity) :用于建模具有唯一标识、有状态生命周期的概念整体。
- 值对象(Value Object) :封装数据属性,构成一个完整的值,提供无副作用的行为,是不可变的,通过类型和所有属性的整体值来标识。
- 聚合(Aggregate) :建模一个整体概念,可由一个或多个实体和/或值对象组成,父实体代表事务一致性边界。
- 领域服务(Domain Service) :用于建模无状态的业务操作,若将其作为实体或值对象的行为则不合适。
函数式行为则是使用纯函数来表达领域模型行为,不要求使用纯函数式编程语言,像 Java 或 C# 等当代面向对象语言也可实现纯函数。
软件架构基础
软件架构的定义有多种,一种较新的定义包含三个主要方面:
1. 架构是团队沟通的结果,能达成对业务目标的共享理解,平衡各利益相关者的目标,理解并解决与质量属性相关的重要特性。 <