一、应用与其依赖
随着软件工程的发展,为了减小工程复杂度,分层和解耦越来越成为共识。应用也由庞大的单体应用进行了服务化拆分,单独拆分的微服务具备低复杂度、易升级、高伸缩性等优点。微服务间通过网络和其他微服务进行连接,组成了更大的逻辑应用。
为了减少代码重复和减小复杂度,在工程实践时应用代码往往也需要拆分(我们称之为功能模块),进行单独的版本控制和版本管理,原应用以依赖的形式的引入拆分的功能。这样的好处很多,如方便模块复用减少代码重复、功能模块仓库可以使用更简单的分支模型管理、功能模块的版本管理更容易。另外在面对应用定制部署时,只需要灵活组合功能模块即可,减小了复杂度。