接口、数据结构、信息架构的区别

继上篇关于接口的文章,再来写一下接口、数据结构、信息架构的区别。

以简书为例,简书里有文章、专题、用户,它们是不同的东西,这很好理解。而在开发层面,文章、专题、用户,它们分别是一种数据对象。

比如文章这种对象,包含了标题、正文内容,也有字数、阅读数、喜欢数等等。或许还有一些没有向用户展示,但也会实际存在的数据,比如这篇文章被收藏了几次,可能也记录了下来,只是产品设计上没有被我们看到。

那么文章这个数据对象,它的数据结构就可以表示为:

{
  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',
  ...
}

数据结构是计算机存储、组织数据的方式。

实际中,业务越复杂,数据对象越多、数据结构也越复杂,一个对象可能包含有非常多的信息。如果我们在每个需要展示这些数据的地方,都去取所有的数据,这并不现实。数据太多会影响加载速度,没这个必要,也不安全。

比如某个文章列表,我们只要标题、发布时间、封面图、阅读数、喜欢数、评论数,这些信息就足够了。接口就是干这件事的,它约定了某个接口可以拿哪些数据。

应用编程接口,是软件系统不同组成部分衔接的约定。

不同的地方用不同的接口,这样不会互相影响。有时为了快速上线需求,也会共用一些接口,节省服务端的工作量。实际上,接口也有版本之分,用来给新老版本调用,实现过渡。

开发部门内部会有接口文档,服务端工程师会把有哪些接口、怎么使用接口给记录下来,让客户端工程师查阅使用。

接口文档

至于信息结构,虽然听起来跟数据结构有点像,但信息结构其实不是开发里的概念,而是交互设计、产品设计里的概念。

信息架构是指对某一特定内容里的信息进行统筹、规划、设计、安排等一系列有机处理的想法。

比如一个 App,包含了首页、搜索、消息这些板块,首页这个版本又包含了广告 banner、运营入口、信息流等等。这可以全局性地梳理一个产品,也是研究竞品的常见方式。

某信息架构梳理