美文网首页
API 设计: 想清楚了再写代码(1)

API 设计: 想清楚了再写代码(1)

作者: 每天写写代码 | 来源:发表于2018-07-24 01:02 被阅读0次

作为软件开发人员,我们很难抗拒把自己的想法写成代码的冲动。当突然有了想法,我们的手指就无法控制,就行一群野兽一样在键盘上疯跑,想用最快的速度实现我们的想法。

尽管这种感觉特别爽,但是我们最好还是退一步思考下,特别是当你创建的东西会被很多人使用,比如一些公共API。在此篇文章中,我讲为大家说明为什么和如何去设计一个深思熟虑的API。

API(Application Program Interface)是一个用于定义应用程序接口的通用术语,换句话说,就是人或者机器是如何与机器进行交流的。在web开发领域,一个API就是一个站点回复客户端请求的结构化文本数据的途径。

另一个被web开发者广泛应用的理念是 RESTFul Web API. 是由 Roy Fielding 定义,其作为一种架构风格,它提供了一个完善的客户端和服务器之间的通信协议。它有一些限制: 无状态通信,基于已有的技术(一般是HTTP),使用超媒体作为引擎状态
换句话说,它提出了一些构建web API 的模式。为了简单起见,本文引用的Web API都是简单API。

一个JSON胜万言(One JSON is worth a thousand words)

看一个API响应的例子:

{
  "data": [
    {
      "story": "Jonatas Baldin was writing a blog post.",
       "created_time": "2017-15-01T00:02:57+0000",
       "id": "624510964324764_1046909755418214"
    },
  ]
}

这个数据片段叫JSON, 这是在智能手机上看到的一个Facebook的一个状态消息,来自于 Facebook API,是不是相当简洁?

现象一下,如果你是一个负责这个API的Facebook工程师,突然你有一天你脑子一热决定把id字段改成message_id. 可以想象,这么一个小小的改动,有可能让Facebook崩溃。最终导致所有依赖之前结构的设备不能收集和展示给用户内容,这是多么操蛋的一天。

好的,糟糕的和丑陋的(The good, the bad and the ugly)

一个糟糕的API设计早晚会引起问题:

缺乏一致性:一旦一个API的增长,要创建访问点往往只是为了满足紧急需求。
很难扩展:遇到问题很难找到扩展突破口。
很难学习:学习曲线陡峭
性能问题:后来适配的API往往是性能瓶颈
API改变无休止: 总是第一次是对的,后面都不对。

API是程序和用户之间的契约,当突然改变的时候不能引起混乱,这个契约要有远见。这是设计的入口:一个计划,一个公约,一个系统或者是一个可评估的交流。

原文

API Design: Think First, Code Later

相关文章

  • API 设计: 想清楚了再写代码(1)

    作为软件开发人员,我们很难抗拒把自己的想法写成代码的冲动。当突然有了想法,我们的手指就无法控制,就行一群野兽一样在...

  • 「笔记」Introduction-下

    想清楚了再写代码!想清楚了再写代码!想清楚了再写代码!问:如何提升动态规划能力?1.多刷题,锻炼用状态描述问题,转...

  • 想清楚了,再写

    雨夜闷热,尤其沉寂。翻检旧稿,竟发现1999年元旦的凌晨,写有几页文字,看看是自己的心路历程,留下了痕迹,尚有点意...

  • 想清楚再写

    每天的写文都要去寻找一个主题,一个能写的主题。主题不是从素材库中寻找,都要在身边现找,然后再围绕这个主题边想边写。...

  • 完成在前,完美在后

    最近,看了好几篇,学习写作的文章。有的说想清楚再写,有的说思考是零碎的,不写根本想不清楚。 先说前者,想清楚再写,...

  • 为什么不能等想清楚了再写作?

    我们不能等到想得很清楚了再开始写作,因为不写很大几率根本就没法想清楚。即使我推崇通过思维导图搭建框架,理清思路,但...

  • 低代码开发平台,RestCloud API开发

    低代码开发平台,作为企业统一的后端API开发平台,承担API的设计、开发等功能;RestCloud API低代码开...

  • API设计

    API设计 Google API 设计思想 1、设计 API设计原则简单可用一致 HTTP 常用方法get 获...

  • 2018-01-17-你离开的第十六天-断笔

    写着写着,自己想清楚了很多事情... 想清楚了,有些东西,就不必要再写了吧... 不会再因为你简单的几句话心绪不宁...

  • Java 8的API设计原则

    掌握的Java API 8设计,才能确保客户端代码可以使用lambda表达式访问API。 一个好的API的设计需要...

网友评论

      本文标题:API 设计: 想清楚了再写代码(1)

      本文链接:https://www.haomeiwen.com/subject/nibsmftx.html