用形而上学进行领域建模

💡 原文中文,约3500字,阅读约需9分钟。
📝

内容提要

这篇文章讨论了形而上学的领域建模,并强调了将代码实体与领域模型实体对齐的重要性。作者介绍了形而上学的起源和一些基本概念,如对象、属性和自然种类。文章还提到了使用形而上学进行领域建模的好处,以及如何使用抽象和接口来实现代码库与领域模型的对应关系。作者总结说,形而上学可以满足企业软件开发的需求,并逐渐开始开源一些使用这种方法创建的库。

🔎

延伸解读

为何要追求模型与代码的一一对应

作者强调领域模型与代码库之间应保持双射关系,即模型中的每个实体都对应代码中的实体。这样做的好处是,当模型变化时,开发者能精准定位需要修改的代码位置;新增实体时,也能明确在何处添加。这种对应关系借鉴了传统工程中图纸与产品的映射逻辑,旨在提升软件的可维护性和演化效率。

自然种类:领域建模的稳定锚点

文章指出自然种类比具体对象更少且更稳定,它们不随时间变化,是永恒不变的知识。因此,领域建模应聚焦于发现自然种类,而非孤立的对象。通过提出“这是什么”的问题,抽象出本质属性,将具体对象归类到自然种类中。这能降低认知负荷,并使模型更贴近领域专家的思维。

从对象到种类的归纳循环

作者描述了发现自然种类的过程:遇到对象、观察属性、比较多个对象、归纳共同属性,进而形成假设并不断修正。这种循环与TDD、精益创业和科学方法类似。通过持续迭代,基本对象集和它们体现的概念同时浮现。这提示建模不是一蹴而就,而是渐进式的探索。

用接口和抽象类实现自然种类

在代码层面,作者建议对自然种类使用接口或抽象类,对具体对象使用实现类。例如,Apple作为自然种类可以是接口,而Jonagold作为具体种类实现它,并通过构造函数参数化属性如颜色。这种结构直接映射了本体论中的种类与对象关系,使代码库清晰反映领域模型。

❓

Q&A

形而上学的领域建模有什么重要性?

形而上学的领域建模强调代码实体与领域模型实体之间的对齐,便于维护和更新。

形而上学的起源是什么?

形而上学的起源可以追溯到古代哲学家,探讨现实的本质和组成。

如何实现代码库与领域模型的对应关系?

可以通过使用抽象和接口来实现代码库与领域模型之间的对应关系。

领域模型构建的关键是什么?

发现自然种类是领域模型构建的关键,需要关注本质属性。

形而上学如何帮助软件开发?

形而上学提供稳定的自然种类和属性,帮助软件开发更好地反映领域模型。

文章中提到的自然种类有什么特点?

自然种类比对象少,保持不变,提供稳定的知识,易于掌握和操作。

🏷️

标签

➡️

继续阅读