atitit.api设计 方法 指南 手册 v2 q929.docx

atitit.api设计标准与方法

 

 

1. 归1化(锤子钉子理论)一

一.壹. 链式方法贰

一.贰. 条条框框伍:建立再次回到值类型2

壹.叁.
参数接收 JSON 对象二

一.四.
参数暗许值二

1.伍. 命名参数 support by map二

一.6.
 甩卖项目
类型自动转换四

1.7.
 处理
undefined null  empty5

一.八.
.施用结构化语法5

1.九.
装置和获得操作,能够合二为一;方法更多,文书档案大概越难写
jq.val()伍

2.
扩展性5

2.1.
回调(callbacks)5

2.2.
事件(events)5

3.
处理错误 throw friendly
ex6

④. 而且俩个主意再次回到null和ex陆

5.
可预测性 包容性6

5.一. 编写制定SPI尤为关键陆

陆. 反面例子 反格局陆

7. 参考7

 

 

1. 归1化(锤子钉子理论)

2. 防止选择长参数列表

· 三个或多个以内的参数是最周密的

· 长参数列表是有害的,程序员不难失误,并且程序在编写翻译、运营时会表现不佳

· 减少参数的三种方法:Break up
method、创设参数助手类

小编::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:146651九839@qq.com

转发请表明来源: http://www.cnblogs.com/attilax/

 

2.1. 链式方法

2.2. 规则5:建立重返值类型

 

当提到到重回值类型时,你应有创设一致的、正规的API,上面提供一套装置规则(你或许会对上边的平整存在异议):

当方法重临三个独自的靶子,但并未目的被察觉时,应该回到null。

当方法重回多少个目的,但并不曾目的被发现时,应该回到空List、Set、Map、array等,而不是null。

情势应该抛十分防止万壹

对于地方的一、贰条,最佳的施行应该是:

抛出ObjectNotFoundExceptions当未有对象被察觉时

 

并非回来null,1般以throw ex 尾号。。除非尤其2个XXretNull的方法.. Null方便的if判断..

2.3. 参数接收 JSON 对象

与其吸收一批参数,不比接收贰个JSON 对象:

2.4. 参数暗中认可值

参数最佳有暗中认可值,通过 jQuery.extend() , _.extend() 和
Protoype 的 Object.extend,能够覆盖预设的默许值。

 

2.5. 命名参数 support by map

接过 map
映射参数,回调可能系列化的属性名,不仅让你的 API
更干净,而且动用起来更心旷神怡、高效。

 

jQuery
的  css()  方法能够给
DOM 成分设置样式:

JavaScript

图片 1

1

2

3

4

5

jQuery("#some-selector")

  .css("background", "red")

  .css("color", "white")

  .css("font-weight", "bold")

  .css("padding", 10);

本条点子能够承受二个 JSON
对象:

JavaScript

图片 2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

jQuery("#some-selector").css({

  "background" : "red",

  "color" : "white",

  "font-weight" : "bold",

  "padding" : 10

});

 

// 通过传一个 map 映射绑定事件

jQuery("#some-selector").on({

  "click" : myClickHandler,

  "keyup" : myKeyupHandler,

  "change" : myChangeHandler

});

 

// 为多个事件绑定同一个处理函数

jQuery("#some-selector").on("click keyup change", myEventHandler);

2.6.  处理项目 类型自动转换

定义方法的时候,须求控制它可以收到什么样的参数。我们不晓得人们如何运用大家的代码,但能够更有远见卓识,思虑帮衬什么参数类型。

// 修改后的代码

DateInterval.prototype.days = function(start, end) {

  if (!(start instanceof Date)) {

    start = new Date(start);

  }

  if (!(end instanceof Date)) {

    end = new Date(end);

  }

 

  return Math.floor((end.getTime() – start.getTime()) / 86400000);

};

加了短短的 陆行代码,我们的艺术强大到能够吸收  Date 对象,数字的时刻戳,甚至像 Sat Sep 0八 二〇一二 一五:3肆:3五 维生霉素T+0200 (CEST)  那样的字符串。

2.7.  处理 undefined null  empty

 

为了使你的 API
更健康,要求鉴定区别是还是不是真

 

2.8. .使用结构化语法

动用结构化的API语法:用thing.action或thing.property代替do_action_with_thing。语法将任天由命地适应模块化的点子,在这之中每一种模块是三个类。

 

2.9. 设置和获取操作,能够合二为1;方法越多,文书档案也许越难写 jq.val()

3. 扩展性

3.1. 回调(callbacks)

由此回调, API
用户能够覆盖你的某一片段代码。把部分供给自定义的意义开放成可配置的回调函数,允许
API 用户轻松覆盖你的暗许代码。

API
接口1旦接到回调,确定保证在文书档案中加以印证,并提供代码示例。

3.2. 事件(events)

事件接口最棒见名知意,能够自由选拔事件名字,制止与原滋事件 重名。

4. 处理错误 throw friendly ex

不是有着的失实都对开发者调节和测试代码有用

5. 再者俩个主意再次回到null和ex 

Ex对大部分气象有用,单判断场地代码太多。Null则有用。。

对此类库开发者,最棒俩个都提供即可。工用户select

6. 可预测性 包容性

好的 API
具有可预测性,开发者能够依据例子估摸它的用法。

Modernizr’s
性情检查实验
 是个例证:

a) 它应用的习性名完全与 HTML伍、CSS
概念和 API 相相配

6.1. 9. 更加多的性质,更加少的格局

6.2. 编写SPI尤为重大

· ServiceProvider Interface即服务提供商接口,插件服务支撑种种落到实处,例如Java
Cryptography Extension (JCE);

· 发布在此之前编写五个插件;

· “1回口径”(“The
Rule of Threes”):指的是当有些意义第壹回面世时,才进行”抽象化”

 

7. 反面例子 反形式

10大最差实践

壹. 错误处理不周全只怕正如差

2. Rest
API忽视HTTP规则

三. 爆出原始底层数据模型

四. 安全复杂性

伍. 出人意料和野鸡公布

6. 不够开发经历

七. 愿意3个MVC架构带给你一个壮烈的API

8. 假使你营造API,用户就会被引入来(Assume
if you build it they will come)

九. 技术支持不丰硕

10. 文书档案不给力

 

 

8. 参考

美貌API设计的十大口径 – 5一CTO.COM.html

陈设美貌API的中国共产党第五次全国代表大会规则-CSDN.NET.html

JavaScript API
设计标准 – WEB前端 – 伯乐在线.html

 atitit.api设计条件 准则  v2 q92玖

 

谷歌首席软件工程师Joshua Bloch谈怎么样筹划壹款不错的API【附PPT】-CSDN.NET.html

API设计的十大最差和中国共产党第五次全国代表大会极品实践-CSDN.NET.html

API设计规范 – jeff技术博客 – 博客频道 – CSDN.NET.html

 

相关文章

网站地图xml地图