API设计之超前设计

大量超前设计

敏捷社区很早提出的理念是“变化是廉价的”,不要过度设计。你可以在之后经常地变动设计。

当用来开发一个控制所有部分的应用程序时,这一理念可能是正确的。但是当你开发的API被设计成外部用户使用,使用场景可变。你的API将成为其他人程序的一部分,改变API对你可能是廉价的,但对于使用这一API的用户改变是昂贵的。

公共API接口的改变是昂贵的

你的API可能由公有部分和私有部分组成。公有部分是与客户端进行交互的部分,这也叫公共接口。

如果你变化公有API可能会面临API使用者不能使用代码的风险,这是使用者不允许的。因此在变更前要及其慎重考虑到这一点。

私有部分是不太敏感的,只要不影响API的功能,你可以用你喜欢的方法改变内部结构。

超前设计

为了最大限度地避免公共API接口发生变化,需要花大量时间分析设计你API的功能,和这一接口的样子。

你可能需要考虑一下几个问题:

  • 公共接口的样子
  • 接口应该怎样配置
  • 接口默认是什么
  • 是否有API的抽象层可以选择

事实上,在超前设计阶段,以上的问题都要考虑。

对我的开源API,Butterfly Components,我花了很长时间分析这些API去做什么,和如何获取这些API,也有用户应该有什么样的公共接口。即便这样,我也会花了少量时间改变公共接口来重新适应未来需求,或者改正那些过去没有分析和设计的部分。

当你确实需要改变API应该怎样做

当你发现确实需要要改变公有API接口,一下是你应该考虑的:

  1. 提供一个替换接口,同时在API中保留老的接口
  2. 在老接口上加弃用标志用来提醒用户切换到新接口

    当发行几个带弃用接口的版本后你可以考虑将接口完全移除。但一定要给使用你API的用户在他们的空间中进行更新的机会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值