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

atitit.api设计原则与形式

 

 

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

一.1. 链式方法二

一.二. 规则五:建立再次回到值类型贰

1.叁.
参数接收 JSON 对象2

一.4.
参数私下认可值2

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

一.陆.
 拍卖项目
类型自动转换四

1.7.
 处理
undefined null  empty5

壹.捌.
.运用结构化语法五

壹.九.
设置和取得操作,能够合二为1;方法更多,文书档案可能越难写
jq.val()伍

2.
扩展性5

2.1.
回调(callbacks)5

2.2.
事件(events)5

3.
处理错误 throw friendly
ex6

4. 而且俩个措施重临null和ex6

5.
可预测性 包容性陆

5.一. 编辑SPI尤为首要六

陆. 反面例子 反格局六

7. 参考7

 

 

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

2. 幸免使用长参数列表

· 七个或七个以内的参数是最健全的

· 长参数列表是重伤的,程序员不难出错,并且程序在编写翻译、运营时会表现不好

· 减少参数的两种方法:Break up
method、创立参数帮手类

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

转发请注明来源: http://blog.csdn.net/attilax

 

2.1. 链式方法

2.2. 规则5:建立再次来到值类型

 

当提到到重返值类型时,你应该创制一致的、正规的API,上边提供一套装置规则(你大概会对上边包车型地铁条条框框存在异议):

当方法重返二个单独的对象,但并未目的被发觉时,应该回到null。

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

措施应该抛至极以免万1

对此地点的①、二条,最佳的履行应该是:

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

 

决不回来null,1般以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

1

2

3

4

5

jQuery("#some-selector")

  .css("background", "red")

  .css("color", "white")

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

  .css("padding", 10);

本条格局能够承受三个 JSON
对象:

JavaScript

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 08 2011 一伍:3四:3伍 GMT+0200 (CEST)  那样的字符串。

2.7.  处理 undefined null  empty

 

为了使您的 API
更加结实,需求鉴定分别是不是真

 

2.8. .使用结构化语法

应用结构化的API语法:用thing.action或thing.property代替do_action_with_thing。语法将任其自然地适应模块化的不二诀窍,个中每一种模块是二个类。

 

2.9. 安装和取得操作,能够合2为壹;方法越来越多,文档可能越难写 jq.val()

3. 扩展性

3.1. 回调(callbacks)

经过回调, API
用户能够覆盖你的某一有个别代码。把1部分亟需自定义的功力开放成可布署的回调函数,允许
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. 九. 越多的性质,更加少的点子

6.2. 编纂SPI尤为重大

· ServiceProvider Interface即服务提供商接口,插件服务接济七种贯彻,例如Java
Cryptography Extension (JCE);

· 发表在此之前编写三个插件;

· “1次口径”(“The
Rule of Threes”):指的是当有个别意义第3回面世时,才实行”抽象化”

 

7. 反面例子 反格局

10大最差实践

1. 错误处理不周详大概相比较差

2. Rest
API忽视HTTP规则

3. 暴光原始底层数据模型

四. 康宁复杂性

伍. 意外和非官方公布

陆. 缺点和失误开发经历

7. 希望3个MVC架构带给你1个宏伟的API

八. 假诺你创设API,用户就会被引入来(Assume
if you build it they will come)

9. 技术帮助不足够

十. 文书档案不给力

 

 

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设计的10大最差和中国共产党第五次全国代表大会一级实践-CSDN.NET.html

API设计原则 – jeff技术博客 – 博客频道 – CSDN.NET.html

相关文章

网站地图xml地图