知识卡片

模型代码差异不必消除只能管理

普通读书笔记卡 · 1958.j.1

内容

看到模型和代码存在差异,第一反应可能是想消灭它,但差异的根源无法短期通用解决:架构模型天生抽象、内涵式,为处理复杂度和规模;源代码天生具体、外延式,为能在机器上跑——二者目的不同,差异是结构性的。放弃架构抽象、只盯着代码,只会让系统滑向大泥球。管理差异有两条路:靠机制,如模型驱动工程(MDE)建模后自动生成代码,但还不够成熟;靠人为控制,开发者周期性核对模型和代码是否对得上。

参考来源

- 位置:《恰如其分的软件架构》第10章《代码模型》10.1节《模型-代码差异》(源文件:_epub-src/OEBPS/text00096.html) - 结论依据:原文说明模型-代码差异源于架构模型的抽象内涵性质与源代码的具体外延性质,短期内无通用解决方案,管理差异的两条路径是机制(MDE代码生成)和人为控制(开发者理解并周期性核对)。 - 原始内容:如果你无法消除抽象上的差异,那就必须对差异进行很好的管理。有两个主要的方法:通过机制和通过人为控制……MDE还没有完全做好准备……另一种管理抽象差异的方法是通过人为控制,这意味着开发人员必须理解架构模型和代码,然后确保两者的一致性。