如果用这种态度为API的客户提供服务,那么就不会带来一个好的合作氛围 。但还有更坏的合作方式,就是完全不提供迁移的方案 。有时候,对于一个愿意迁移到新版本的API客户来说,还是可以接受一个API完全重写 。但如果说让所有的用户都只使用老的版本或者强迫他们立即都升级到最新版本,对于分布式开发来说,这两种方式都不现实,正如本书一开始所说的那样 。如果API经常产生重大的变化,而且要强迫用户随之迁移,那么客户就会转向其他的方案,而放弃现有的API 。总而言之,还是要准备使用增量改进的方式!人们需要软件加以改进,但改进时引入的伤害也应该最小化,特别是要避免重新编写的那种大变化 。如果因为API设计上的问题,使得无法增量改进,那么也许会有充足的理由进行一次重新编写,但这种大的变化应该限定于开发方式上的一些基础性变化 。本书的大部分篇幅都会讨论用于API增量改进的设计实践 。如果出现了很大的变化,我们会同时强调要为一个API提供多个大版本类库 。只有这种方式才能保证API能够变得更好,而且使API用户的痛苦最小化 。
本文摘选自《软件框架设计的艺术》( :a Java )一书,中文版由人民邮电出版社图灵公司推出,特此感谢图灵公司的授权支持 。(本文来自《程序员》杂志11年03期,更多精彩内容敬请关注03期杂志) 《程序员》11年03期精彩内容:2011开放平台之征 《程序员》杂志订阅
- 逐步改善,设计优秀的API
- 设计模式:装饰者模式
- 32位单总线计算机系统中,【计算机类职业资格】软件设计师
- 实践GoF的23种设计模式:SOLID原则
- 【Go实现】实践GoF的23种设计模式:SOLID原则
- 营养改善计划操作流程
- 无代码开发平台的设计与实现
- 大病保险管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
- 设计模式-行为模式-桥接模式(Design_Pattern
- Multi-task Learning 多目标学习-网络设计和损失函数优化