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

atitit.api设计原则与方

 

 

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

1.1. 链式方法2

1.2. 规则5:建立返回值类型2

1.3.
参数接收 JSON 对象2

1.4.
参数默认值2

1.5. 命名参数 support by map2

1.6.
 拍卖项目
类型自动转换4

1.7.
 处理
undefined null  empty5

1.8.
.应用结构化语法5

1.9.
安及落操作,可以联手二为平;方法尤其多,文档可能更进一步难写
jq.val()5

2.
扩展性5

2.1.
回调(callbacks)5

2.2.
事件(events)5

3.
处理错误 throw friendly
ex6

4. 以俩独办法返回null和ex6

5.
可预测性 兼容性6

5.1. 编辑SPI尤为重要6

6. 反面例子 反模式6

7. 参考7

 

 

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

2. 避免采取长参数列表

· 三单或三只以内的参数是最全面的

· 长参数列表是伤害的,程序员容易错,并且程序于编译、运行时见面表现糟糕

· 缩短参数的有数栽方式:Break up
method、创建参数助手类

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

转载请注明来源: http://www.cnblogs.com/attilax/

 

2.1. 链式方法

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

 

当提到到回值类型时,你应当创建同的、正规的API,下面提供平等套装置规则(你可能会见针对下的平整存异议):

当方法返回一个独的对象,但连无对象为发觉时不时,应该回到null。

当方法返回多个目标,但连没有对象吃发现时,应该回到空List、Set、Map、array等,而未是null。

方法应该抛开大以防万均等

对于地方的1、2条,最好之推行应该是:

弃来ObjectNotFoundExceptions当没有目标被察觉时不时

 

毫无回null,一般坐throw ex 尾号。。除非特别一个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

jQuery 1

1

2

3

4

5

jQuery("#some-selector")

  .css("background", "red")

  .css("color", "white")

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

  .css("padding", 10);

夫法可以接受一个 JSON
对象:

JavaScript

jQuery 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);

};

加了短 6
行代码,我们的法子强大到可以收  Date 对象,数字的日子穿,甚至像 Sat Sep 08 2012 15:34:35 GMT+0200 (CEST)  这样的字符串。

2.7.  处理 undefined null  empty

 

以要你的 API
更结实,需要鉴别是否确实

 

2.8. .使用结构化语法

采用结构化的API语法:用thing.action或thing.property代替do_action_with_thing。语法将自然而然地服模块化的方式,其中每个模块是一个近乎。

 

2.9. 装以及博操作,可以同步二乎同样;方法尤其多,文档可能逾难写 jq.val()

3. 扩展性

3.1. 回调(callbacks)

由此回调, API
用户可挂若的某某同局部代码。把有亟待由定义的法力开放化可安排的回调函数,允许
API 用户轻松覆盖而的默认代码。

API
接口一旦接到回调,确保以文档中加以说明,并提供代码示例。

3.2. 事件(events)

事件接口最好表现称知意,可以自由选择事件名字,避免与原生事件 重名。

4. 处理错误 throw friendly ex

切莫是持有的缪都对准开发者调试代码有用

5. 又俩个法子返回null和ex 

Ex对多数情形有因此,单判断场合代码太多。Null则发因此。。

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

6. 可预测性 兼容性

哼的 API
具有可预测性,开发者可以依据例子推断其的用法。

Modernizr’s
特性检测 是只例:

a) 它使的性能名了与 HTML5、CSS
概念以及 API 相匹配

6.1. 9. 重新多之习性,更少之计

6.2. 编排SPI尤为关键

· Service
Provider Interface即服务提供商接口,插件服务支撑多兑现,例如Java
Cryptography Extension (JCE);

· 发布前编写多个插件;

· “三蹩脚法”(“The
Rule of Threes”):指的凡当某个意义第三次等面世时,才开展”抽象化”

 

7. 反面例子 反模式

十老最差实践

1. 错误处理不全面或比较不同

2. Rest
API忽视HTTP规则

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

4. 平安复杂性

5. 出乎意料及野鸡发布

6. 不够开发经历

7. 盼一个MVC架构带给您一个英雄之API

8. 借出而你构建API,用户就见面被唤起上(Assume
if you build it they will come)

9. 技术支持不充分

10. 文档不让力

 

 

8. 参考

良好API设计之十格外条件 – 51CTO.COM.html

筹精美API的五十分规则-CSDN.NET.html

JavaScript API
设计原则 – WEB前端 – 伯乐于线.html

 atitit.api设计基准 准则  v2 q929

 

Google首席软件工程师Joshua Bloch谈如何统筹相同缓缓可以之API【附PPT】-CSDN.NET.html

API设计的十要命无比差与五可怜最佳实践-CSDN.NET.html

API设计条件 – jeff技术博客 – 博客频道 – CSDN.NET.html

 

相关文章

网站地图xml地图