领域建模的原则(战术篇)
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
TechLead 少个分号
扫码关注公众号
扫码阅读
手机扫码阅读
本文由作者“少个分号”整理,讨论了在大规模团队和复杂系统环境下,领域驱动设计(DDD)的一些战术建模原则。
作者指出,在大型系统中,需要一些原则来指导模型设计,以此来避免团队在开发过程中的混乱。作者提供了DDD战术建模中的十条原则作为基本要求:
- 将被多个聚合根使用的实体设计为聚合根或拆分,避免共享实体导致聚合失去意义。
- 避免使用中间表处理多对多关系,探明其业务含义,并明确中间模型归属。
- 区分关联和拥有关系,避免聚合过大。
- 确保领域模型和数据库的一致性,降低系统复杂性。
- 聚合层级保持在2-3级,以免带来过大的落地成本。
- 事实数据应快照化,锁定关键业务数据。
- 为核心交易设计流水或日志,用于审计目的。
- 抽象核心模型,提供良好的扩展策略。
- 在业务变化时分而治之,业务稳定后再抽象统一。
- 架构师应关注核心模型,其他模型设计决策应交给具体开发人员,并记录决策过程。
作者强调,经验丰富的工程师会理解到约束的好处,而在遵循这些原则的同时,也应允许一定程度的灵活性。架构师的角色是确定系统的核心模型和上下文边界,而具体的模型设计应该由开发人员根据实际情况来做出最佳判断。
TechLead 少个分号
TechLead 少个分号
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
TechLead 少个分号的其他文章
技术管理 | 作为 Tech Lead 应该操心什么?
Tech Lead 能力模型和参考工作任务清单。
软件价值模型: 为什么需求会常变?
需求变化是软件工程师最难以容忍的一件事,为了做好软件设计,不得不猜测未来需求的变化方向。猜中了就是 “正交分解”,猜不中就是冗余设计。\x0a\x0a那么需求变化背后的逻辑是什么呢?
技术管理 | 谈一些职场认知悖论
如果不能接受自己的价值观调整,就会一直干的很痛苦。
系统设计 | 如何生成 PDF?
一种导出 PDF 的方案,有用可以收藏。
用分布式系统思考团队管理
一个团队本质上是一个由人构成的分布式系统,所以可以用分布式系统的一些模型来分析他们,通过这些模型让管理者能更为深入的理解团队管理的逻辑。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线