5 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
撇開(kāi)所有的業(yè)務(wù)場(chǎng)景不考慮,分享一個(gè)我之前在內(nèi)部做的分享文章。
遠(yuǎn)程接口設(shè)計(jì)經(jīng)驗(yàn)分享
回到題主的疑問(wèn),阿里面試官是否在刷流氓。
我作為阿里的一個(gè)技術(shù)人員,雖然很少做面試官,不過(guò)我能打開(kāi)從這個(gè)問(wèn)題中猜測(cè)出當(dāng)事面試官的主要考察方向。
所以這個(gè)技術(shù)問(wèn)題一個(gè)開(kāi)放性的問(wèn)題,看你的技術(shù)知識(shí)范圍和邊界。
1、你可以選擇拋開(kāi)業(yè)務(wù)場(chǎng)景談?wù)撊绾卧O(shè)計(jì)一個(gè)API甚至一個(gè)API的框架,如果一個(gè)接口被設(shè)計(jì)為對(duì)外部的接口,那從框架上還要考慮到命名策略、向下兼容方案、用戶(hù)鑒權(quán)、調(diào)用流控等技術(shù)框架引入。
2、你也可以選擇從領(lǐng)域模型進(jìn)行切分,比如更細(xì)粒度的追問(wèn)業(yè)務(wù)場(chǎng)景,根據(jù)領(lǐng)域劃分自己的API設(shè)計(jì),并說(shuō)明清楚你自己的思考。
舉個(gè)例子:你可以針對(duì)面試官的問(wèn)題,追問(wèn)場(chǎng)景,并細(xì)化到一個(gè)具象的領(lǐng)域。這個(gè)過(guò)程其實(shí)也體現(xiàn)了你的思考方式。假設(shè)能具象到發(fā)布商品接口。發(fā)布一個(gè)商品,有一個(gè)公共的API,這個(gè)API兼容的考慮到了大部分商品所需要填寫(xiě)的信息;但如果要發(fā)布一個(gè)網(wǎng)游的商品,這里面所需要填寫(xiě)的信息肯定和發(fā)一個(gè)連衣裙存在非常大的差異,請(qǐng)問(wèn)你什么時(shí)候會(huì)考慮為這種場(chǎng)景獨(dú)立一個(gè)API,這個(gè)度你怎么理解怎么把控。
當(dāng)然了,還有很多細(xì)節(jié)上的事情需要體現(xiàn)在你的API設(shè)計(jì)中。代碼畢竟是人寫(xiě)的,接口與接口之間的交互背后其實(shí)是團(tuán)隊(duì)與團(tuán)隊(duì)之間的協(xié)作,如何通過(guò)一個(gè)合理的API提高團(tuán)隊(duì)協(xié)作的效率,利益邊界劃分的清晰,形成共贏的局面,是非常講究的一個(gè)過(guò)程。
另外,就算這個(gè)問(wèn)題退化為簡(jiǎn)單的機(jī)器與機(jī)器交互的性能,也有非常多的關(guān)鍵點(diǎn)要挖。
利益相關(guān)聲明:我是阿里技術(shù)員工

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
添加回答
舉報(bào)