jQuery技术内幕试读


缘起

因为这本书的作者是阿里的大拿,所以一直有关注,这次51CTO竟然祭出近200页的试读版,虽然之前在高云大拿的博客园看过系列文章,为了学习先进的设计理念、学习各种实现技巧以及巩固Js基础,我特来拜读一下这个版本(尼玛,其实就是为了赠书,邪恶的笑ing,当然,真心为了巩固Js基础以及limit-->阿里牛人)。废话不多说,以下是我试读过程的一些note。

总体架构部分

寥寥5页纸,我是打印出来的,足够清晰明了的直接引领我进入了读jQuery源码的世界。为什么这么说呢?首先高云大拿一开始就很清晰地上了张图,将总体架构很清晰地展现出来了,我是这么理解的:

  • Step1:入口模块,构造jQuery全局对象,而调用jQuery都会调用这个入口,然后通过底层支持模块的选择器模块进入
  • Step2:功能模块,我个人理解它是API模块,需要底层模块的支持,总共是有9个
  • Step3:底层模块,这是jQuery的基础核心所在,其中工具方法模块和浏览器功能测试模块是API模块都会用到的

不仅如此,后面贴了一个源码的总体结构清单,更是简单地不能再简单了,整个对外输出一个jQuery全局对象作为入口,其他总共16个模块在自调用函数的上下文中是私有的,证明了jQuery源码是相当清晰和有条理的。

另外,书中还提及了很多代码细节,亮点在于全书一开始就定下基调是采用问答的形式进行源码解读,这个非常符合我的胃口,到后来还有“例1、例2”这样勾起童年的细节存在,简直是乐high了好么,难道你们没有想起高中数学或物理课本的例1等么?越是这样,我觉得也是有兴趣往下看了。

当然,也有觉得牵强的地方,比如,在解释源码声明时传进windowundefined两个参数时竟然说压缩时优化,这个真的看不懂是什么梗啊,可能自己还没到那境界,还得再google学习下,或者作者可以考虑把这也讲清楚。最后,个人一直不喜欢书本有什么总结呀,之类的,还是章节的总结,这个觉得应该是留给读者去总结的,可以留个白的板块,让读者自己去总结,做自己的总结,岂不惬意?

入口模块:jQuery对象

这个接口是给用户调用用的,所以用户传入的参数不同,调用效果不同,之前用jQuery只知道有这样的情况,但是不知道其具体是如何实现,这一章就彻底解开了我的疑惑。通过对7种不同调用方式逐一详细的深入源码剖析,又是从整体到细节,最后又回到整体总结的方式,非常好,具体到哪几行代码都干了些什么,这才是我想要的技术内幕,当然,这是高云大拿自己的理解,读者自己看,会根据自己对jQuery的使用情况,会有不同的理解,不过这样的理解只会是更深入,更有利的,互相促进的,我就是这样的,非常感谢这几个样章,而且同时又是问答形式,真是太棒了,perfect!

每种方式来调用方法都从实现原理 --> 源码分析 --> 如何使用 --> UML图似的小结,这里,每一种都有小结,而且是类图方式或者说是思维导图似的给出小结对我这种看了前面忘了的人非常有益处,点32个赞。

另外,讲到静态属性和方法这一小结时,因为非常多,所以以列表形式,一个个细讲,读起来竟然一点都不乏味,真乃有点神了,我自己都不相信自己竟然看下来了。这个小结我也是打印出来看了,因为太多属性和方法了,我喜欢纸质的,所以,求小编给力呀,赠书呀,有木有,虽然厚一点。高云大拿把底层模块中的工具方法以及一部分的浏览器功能测试的方法都放到了这里来讲,我刚开始以为不妥,后来细看,其实,应该讲也是合理的,但是第一章画架构图时,这些就应该分属于入口模块了。但是呢,回过头想,这些也是底层的支持方法,只不过,其他模块都会用到他们就是了。所以,应该讲是一个交集。

底层支持模块

刷了一下样章,总页数其实只给到了底层支持模块的一个模块,也是入口模块会最先调用到的:选择器模块。之前就知道jQuery用的是sizzle选择器,而且在面试的时候以及笔试的时候都遇到过,这次算是可以较为系统地进行学习了。

这一章还是依循大拿的前两章的风格,总分总有木有,这种行文结构从小学写作文就开始锻炼了,这是我第一次在技术书籍中看到如此好的应用和实践,亲切感倍增呀,怎么可能会读不进去呢,果断是更能让我深入了解为什么sizzle的从右到左的解析是怎么个回事了,一般人我不告诉他,自己去看这一章,效果会更好,总体沿袭第二章的风格,到这一章代码一段,我又作死地想要如果纸质书上代码能够有高亮,就好了,所以自己就配合着抓了一份jQuery1.7.1源码下来,开在sublime里面高亮配合着读,效果更佳,这个就告诉你们了哈,受用无穷。

试读总结

三章试读下来,利用一周零零星星的时间,有的地方还没读透,回过头希望能够拿到赠书(要是没有自己买咯只好,当然别是这种情况呀),然后继续研读。哦啦,希望自己在Js的学习道路上,能够通过这次第一次读源码(间接)更进一步,能够渐渐企及前辈们的高度。

最后,祝愿此书大卖。

左银右煌 /
Published under (CC) BY-NC-SA in categories web技术  tagged with jQuery