知识卡片
版本内部化:内部解析优于版本编号
内容
给服务接口做版本管理有两种方式:一种是端点里直接带版本号(v1、v2……),调用方必须知道自己在用哪个版本;另一种是保持端点名称不变,由服务内部根据调用方上下文自动判断该返回哪个版本的数据。后者的好处是调用方不会和某个具体版本号产生耦合,替换实现更自由。不管用哪种方式,都应把并行支持的版本数量死死摁在两个以内——版本越多,需要维护和测试的组合就越多,治理成本会指数级增长。
参考来源
- 位置:《演进式架构(原书第2版)》第7章《构建可演进的架构》「服务版本控制」小节(源文件:_epub-src/EPUB/xhtml/chapter11_0001.xhtml)
- 结论依据:原文明确版本编号与内部解析两种模式,并给出只支持两个版本、优先内部解析的治理建议,直接支持卡片论点。
- 原始内容:"开发人员通常采用两种常见模式来对端点进行版本控制,即版本编号或内部解析……保持不变名称的优势在于减少了应用程序对特定版本号的耦合……在进行服务版本控制时,优先选择内部解析而不是版本编号,同时只支持两个版本。"