代码复用的风险性
人们常说好心办坏事。在软件项目中,通过代码库来实现微服务之间的代码复用就是这样一种情况。几乎在所有采用了微服务架构的项目组织中,各个独立的团队和开发者都应该基于某些核心代码库来构建他们的微服务。很显然,尽管人们早已知道这其中潜在的问题,但依然有许多的人没有给予足够的重视。在这篇文章中,我将会论证为什么采用代码库可能起初看起来很有吸引力,又为何会成为一个麻烦,以及你应该如何缓解这些问题。
代码复用的目的
利用库来实现代码复用往往是为了这两个目的:共享域逻辑和基础组件层的抽象。
可共享的域模型( Shared domain model ): 域模型中的某一部分可能在多个 有界上下文( Bounded Contexts )中是一样的,因此,相比起反复地实现这一段域逻辑,你会砍掉重复实现的需求并消除在多次实现中出现逻