软件开发中的决策:权衡与取舍
上QQ阅读APP看书,第一时间看更新

2.2 通过库在代码库之间共享代码

我们先做一个设定,由于两个独立代码库之间存在大量重复代码,两个团队决定将通用代码抽取出来作为一个单独的库。我们会将授权服务的代码抽取到一个单独的代码库中。其中一个团队还需要创建新库的部署流程。最常见的场景是将库发布到一个外部的存储库管理器,譬如JFrog的制品仓库。图2.4对这一场景进行了说明。

一旦将通用代码存储到一个存储库管理器,服务就可以在构建时拉取该库,使用其中包含的类。这种方式使用同一个地方存储代码,解决了代码重复的问题。

图2.4 从存储库管理器获取某个通用库

消除重复代码带来的诸多益处中显而易见的是代码整体质量的提升。使用一个共享库存储通用逻辑有利于团队的协作,共同改进代码库。基于这种机制,某个缺陷修复后,其所在共享库的所有消费者都能直接受益,不再有重复的工作。现在,我们一起来看看这种方式有哪些缺点以及使用它时需要做怎样的取舍。