java - API如何设计
ringa_lee
ringa_lee 2017-04-17 16:45:29
0
8
265
ringa_lee
ringa_lee

ringa_lee

全員に返信 (8)
大家讲道理

撇开所有的业务场景不考虑,分享一个我之前在内部做的分享文章。
远程接口设计经验分享

回到题主的疑问,阿里面试官是否在刷流氓。
我作为阿里的一个技术人员,虽然很少做面试官,不过我能打开从这个问题中猜测出当事面试官的主要考察方向。

所以这个技术问题一个开放性的问题,看你的技术知识范围和边界。

1、你可以选择抛开业务场景谈论如何设计一个API甚至一个API的框架,如果一个接口被设计为对外部的接口,那从框架上还要考虑到命名策略、向下兼容方案、用户鉴权、调用流控等技术框架引入。

2、你也可以选择从领域模型进行切分,比如更细粒度的追问业务场景,根据领域划分自己的API设计,并说明清楚你自己的思考。

举个例子:你可以针对面试官的问题,追问场景,并细化到一个具象的领域。这个过程其实也体现了你的思考方式。假设能具象到发布商品接口。发布一个商品,有一个公共的API,这个API兼容的考虑到了大部分商品所需要填写的信息;但如果要发布一个网游的商品,这里面所需要填写的信息肯定和发一个连衣裙存在非常大的差异,请问你什么时候会考虑为这种场景独立一个API,这个度你怎么理解怎么把控。

当然了,还有很多细节上的事情需要体现在你的API设计中。代码毕竟是人写的,接口与接口之间的交互背后其实是团队与团队之间的协作,如何通过一个合理的API提高团队协作的效率,利益边界划分的清晰,形成共赢的局面,是非常讲究的一个过程。

另外,就算这个问题退化为简单的机器与机器交互的性能,也有非常多的关键点要挖。

利益相关声明:我是阿里技术员工

いいねを押す+0
    巴扎黑

    考虑具体业务细节,合理实际API

    いいねを押す+0
      迷茫

      是指web service还是sdk还得封装的模块还是什么 ..

      いいねを押す+0
        迷茫

        怎么设计一个API这需要结合业务需求,如一楼说的,没有需求,脱离情景,这是在耍流氓。
        怎么设计好一个API,这需要长期经验累积(也就是所谓的空谈)。
        参考: http://blog.jobbole.com/42317/

        update 2016-1-13 10:17:40

        面试官就是等你回答:你没跟我说需求,你这是耍流氓

        いいねを押す+0
          巴扎黑

          主要是想考察你平时有没有积累和总结吧。面试的时候,可以自己给出场景,自己分析,给出答案。

          いいねを押す+0
            大家讲道理

            流氓。。
            其实他是想问你你之前做API的时候都考虑什么问题呢?

            いいねを押す+0
              刘奇

              脱离情景问这些简直是耍流氓啊。。

              いいねを押す+0
                洪涛

                自己问题提的烂还不让人喷...

                いいねを押す+0
                  最新のダウンロード
                  詳細>
                  ウェブエフェクト
                  公式サイト
                  サイト素材
                  フロントエンドテンプレート
                  私たちについて 免責事項 Sitemap
                  PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!