学习API的设计理念

      学习一个API不是把所有对象、属性、方法、事件、结构,全都记下来就行的。有些东西的数量多到一般人不能对其完全记忆,比如Win32API的数量就多且复杂到无法记忆。所以记住API并不是最重要的,最重要的是理解API的设计理念,试着体会API作者的想法。
  有人花很多时间去学习jQuery,网络上找的教程,只是教了各种特效的做法、各个方法的使用说明。这样学到的东西永远停留在看过的东西上。我觉得如果是为了使用就不该花时间去学那些东西,更应该想想作者为什么这么做。遇到问题应该想想John Resig如果遇到同样问题会怎么做。只要了解了作者的风格,那些API怎么着也可以猜到一二。比如了解了jQuery对象的css方法,那么attr方法和data方法就是一样的套路。当发现一些方法的返回值是jQuery对象时,对于新的方法也可以做这样的猜测。作者也想开发出更简单的东西降低使用者的学习成本,所以不可能把API设计的完全无逻辑。当然,以上这些并不是怂恿大家不要去学习,我想说的是,只为了学习如何使用它,就没必要生硬地去学习每个方法。如果是为了开发同类产品,研究其源码,学习它的实现还是很有帮助的。
  不仅是jQuery,也许这样的第三方库太没说服力了。实际上JavaScript内置对象的属性方法、DOM操作API,等,这些都是人开发的。比如我们看到一个叫做getAttribute的方法时应该就能猜到可能会有一个setAttribute与之对应。看到一个appendChild时就可以猜到可能会dependChild,但实际上并没有这个方法,只是通过这个名称可以找到removeChild方法。
  很多现代浏览器的新API,如,WebGL、IndexedDB、AudioAPI,等,这些东西都是不同的小组开发的,他们的设计理念都不同。有些作者喜欢函数式编程,整个API都是函数式的。有些作者喜欢事件式编程,整个API就被设计成事件式的。甚至有些作者还喜欢节点式编程,那么API就可以被设计成节点式的。其实我这里说的太主观了,有使用并不是作者喜欢这样的风格,而是作者觉得这样的风格更适合开发这套API。
  总之。只要知道了整个API的设计风格,学习它的其它东西就势如破竹。要把所有API都记住是基本不可能,也是浪费时间的。只有体会他们的设计理念,才能更灵活的使用它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值