5 回答
TA贡献1946条经验 获得超3个赞
撇开所有的业务场景不考虑,分享一个我之前在内部做的分享文章。
远程接口设计经验分享
回到题主的疑问,阿里面试官是否在刷流氓。
我作为阿里的一个技术人员,虽然很少做面试官,不过我能打开从这个问题中猜测出当事面试官的主要考察方向。
所以这个技术问题一个开放性的问题,看你的技术知识范围和边界。
1、你可以选择抛开业务场景谈论如何设计一个API甚至一个API的框架,如果一个接口被设计为对外部的接口,那从框架上还要考虑到命名策略、向下兼容方案、用户鉴权、调用流控等技术框架引入。
2、你也可以选择从领域模型进行切分,比如更细粒度的追问业务场景,根据领域划分自己的API设计,并说明清楚你自己的思考。
举个例子:你可以针对面试官的问题,追问场景,并细化到一个具象的领域。这个过程其实也体现了你的思考方式。假设能具象到发布商品接口。发布一个商品,有一个公共的API,这个API兼容的考虑到了大部分商品所需要填写的信息;但如果要发布一个网游的商品,这里面所需要填写的信息肯定和发一个连衣裙存在非常大的差异,请问你什么时候会考虑为这种场景独立一个API,这个度你怎么理解怎么把控。
当然了,还有很多细节上的事情需要体现在你的API设计中。代码毕竟是人写的,接口与接口之间的交互背后其实是团队与团队之间的协作,如何通过一个合理的API提高团队协作的效率,利益边界划分的清晰,形成共赢的局面,是非常讲究的一个过程。
另外,就算这个问题退化为简单的机器与机器交互的性能,也有非常多的关键点要挖。
利益相关声明:我是阿里技术员工
添加回答
举报