知识卡片

进程内通信的两级代码模型

普通读书笔记卡 · 1976.a

内容

限界上下文若为进程内通信,代码模型有两级设计:命名空间级别(所有上下文同属一个工程模块,编译成一个JAR包),与工程模块级别(命名空间上逻辑分离,不同上下文是同一项目的不同模块,各自编译成独立JAR包)。二者仅有编译期差异,后者解耦更彻底——某上下文变更时只需重编译其对应JAR包。到运行期两者无区别,因为都跑在同一个JVM中,变化发生时整个系统都要重启。发散:这一区分提醒我们,”独立部署”和”独立编译”是两回事,进程内的模块化只解决了编译期隔离。

参考来源

- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.1.1(源文件:_epub-src/OEBPS/031.xhtml) - 结论依据:原文以Java为例列出命名空间级别与工程模块级别两种代码模型,并说明其编译期差异与运行期一致性。 - 原始内容:两种级别的代码模型仅仅存在编译期的差异……到了运行期,这两种方式就没有任何区别了,因为它们都运行在同一个Java虚拟机中。