Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

学习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都记住是基本不可能,也是浪费时间的。只有体会他们的设计理念,才能更灵活的使用它们。
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^