知识卡片

把几十个零散的RPC方法,重新包装成开发者熟悉的"表和字段"

专业/工作

内容

Facebook平台最初的API是几十个各自独立的RPC方法(friends.get、users.getInfo……),开发者要访问自己数据库时习惯用SQL自由地筛选字段、排序、限制数量、做嵌套查询,但面对平台API却只能死板地调用某个预先定义好的方法、拿到它规定好的返回结构。FQL的关键洞察不是发明新技术,而是换一层”熟悉度”:把平台数据重新描述成表和字段的样子,让开发者用几乎和查自己数据库一样的SQL语法去查询Facebook的数据。这提示一个设计对外接口时值得参考的思路:接口好不好用,很大程度取决于它是否匹配了使用者已有的心智模型——与其要求开发者学一套全新的、逐个方法记忆的API,不如把数据重新塑造成他们本来就熟悉的形状。

参考来源

《架构之美》第6章《数据增长:Facebook平台的架构》