学习API的设计理念
来源:互联网 发布:白金数据日语 编辑:程序博客网 时间:2024/05/17 06:45
学习一个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都记住是基本不可能,也是浪费时间的。只有体会他们的设计理念,才能更灵活的使用它们。
有人花很多时间去学习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都记住是基本不可能,也是浪费时间的。只有体会他们的设计理念,才能更灵活的使用它们。
0 0
- 学习API的设计理念
- jquery的设计理念
- 程序的设计理念
- TextMate的设计理念
- HashMap的设计理念
- android36_android的设计理念
- 软件的设计理念
- Spring的设计理念
- 乔布斯的设计理念
- tensorflow的设计理念
- 设计的理念
- Akka的设计理念
- 设计相关的网站-参考学习创意理念
- Spring学习笔记之Spring框架的设计理念分析
- java.io的设计理念
- 博朗的设计理念
- 802.1ag的设计理念
- TINY框架的设计理念
- cocos2d-x 3.0 Android.mk 设置方法
- 不要省略CSS中零值的单位!
- MAVEN入门教程
- 我的Android SDK里面tools 的adb.exe 不见了
- 升级Spring,从2.5.5至3.2.8,过程实录
- 学习API的设计理念
- Map<String, String> 遍历的四种方法
- Lua性能优化技巧[三 关于表]
- onInterceptTouchEvent和onTouchEvent调用时序
- Android横屏预竖屏
- Android手机目录结构
- linux中export用法
- 选择排序
- Java学习笔记 - 07