1,好学 好记
2,看了就知道干啥(以名释义)
3,不用容易记错
4,容易扩展
5,有完整性

API设计流程
a,仔细研究需求
b,设计之前先写用例
c,研究同一类库中类似的API设计
d,先设计,后实现
e,找人帮你评测API
f,多写几个例子程序
g,做好扩展的准备
h,内部API没评测之前不要发布
宁缺毋滥

API设计原则
1,命名名字要能解释自己,
   要遵从英语语法(尽量少用bool类型的参数,用枚举代替bool,参数的顺序也要一致)
2,避免二义性
3,注意完整性
4,别用缩写
  尽量避免缩写。当然有一些常见的例外,如min,max,dir,rect,prev。但是要注意有一致性,不能有的用有的不用
5,名字要专不要通,
   否则一旦通用的名字被用了,以后就很难有机会收回来
6,不要太过迁就下层API
7,不要自作聪明
   尽量贴近你用户的习惯而不是试图教他们怎么做,否则你就等着写文档去
8,注意边界值
   先按照正常的情况进行处理,最后才对边界值进行处理,这样可以提高API的效率
9,结构性
   很多API在创建对象的时候要求用户指定一大堆的属性
   这么多参数对于用户来说是个噩梦。一般现代API会采用另外一种方式,就是基于属性的设计。这样用户就可以用很多行代码慢慢设计一个类实例,不需要干   预的非必须属性完全可以不管
10,最高境界是手中无剑
   剑客的最高境界是手中无剑,心中有剑。最好的API是让用户完全不觉得在用你的API,而是在用他们最熟悉的工具,完全没有障碍和隔阂