繼上篇關(guān)于接口的文章,再來寫一下接口、數(shù)據(jù)結(jié)構(gòu)、信息架構(gòu)的區(qū)別。
以簡書為例,簡書里有文章、專題、用戶,它們是不同的東西,這很好理解。而在開發(fā)層面,文章、專題、用戶,它們分別是一種數(shù)據(jù)對象。
比如文章這種對象,包含了標(biāo)題、正文內(nèi)容,也有字?jǐn)?shù)、閱讀數(shù)、喜歡數(shù)等等?;蛟S還有一些沒有向用戶展示,但也會實際存在的數(shù)據(jù),比如這篇文章被收藏了幾次,可能也記錄了下來,只是產(chǎn)品設(shè)計上沒有被我們看到。
那么文章這個數(shù)據(jù)對象,它的數(shù)據(jù)結(jié)構(gòu)就可以表示為:
{
id: 1000,
created_at: Fri, 11 Aug 2017 08:43:38 CST +08:00,
shared_at: Fri, 11 Aug 2017 08:52:48 CST +08:00,
last_updated_at: Fri, 11 Aug 2017 08:52:48 CST +08:00,
wordage: 1000,
view_count: 10000,
likes_count: 2,
title: 'xxxxx',
...
}
數(shù)據(jù)結(jié)構(gòu)是計算機(jī)存儲、組織數(shù)據(jù)的方式。
實際中,業(yè)務(wù)越復(fù)雜,數(shù)據(jù)對象越多、數(shù)據(jù)結(jié)構(gòu)也越復(fù)雜,一個對象可能包含有非常多的信息。如果我們在每個需要展示這些數(shù)據(jù)的地方,都去取所有的數(shù)據(jù),這并不現(xiàn)實。數(shù)據(jù)太多會影響加載速度,沒這個必要,也不安全。
比如某個文章列表,我們只要標(biāo)題、發(fā)布時間、封面圖、閱讀數(shù)、喜歡數(shù)、評論數(shù),這些信息就足夠了。接口就是干這件事的,它約定了某個接口可以拿哪些數(shù)據(jù)。
應(yīng)用編程接口,是軟件系統(tǒng)不同組成部分銜接的約定。
不同的地方用不同的接口,這樣不會互相影響。有時為了快速上線需求,也會共用一些接口,節(jié)省服務(wù)端的工作量。實際上,接口也有版本之分,用來給新老版本調(diào)用,實現(xiàn)過渡。
開發(fā)部門內(nèi)部會有接口文檔,服務(wù)端工程師會把有哪些接口、怎么使用接口給記錄下來,讓客戶端工程師查閱使用。

至于信息結(jié)構(gòu),雖然聽起來跟數(shù)據(jù)結(jié)構(gòu)有點像,但信息結(jié)構(gòu)其實不是開發(fā)里的概念,而是交互設(shè)計、產(chǎn)品設(shè)計里的概念。
信息架構(gòu)是指對某一特定內(nèi)容里的信息進(jìn)行統(tǒng)籌、規(guī)劃、設(shè)計、安排等一系列有機(jī)處理的想法。
比如一個 App,包含了首頁、搜索、消息這些板塊,首頁這個版本又包含了廣告 banner、運(yùn)營入口、信息流等等。這可以全局性地梳理一個產(chǎn)品,也是研究競品的常見方式。
