说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

[探讨] 是用jQuery框架还是自造车轮呢?

HTML文档下载 WORD文档下载 PDF文档下载
日前,寒冬winter在博客园的一篇关于《从jQuery谈库与框架的设计之优劣》的文章引发了众多开发者们的激烈探讨,那么究竟是用jQuery框架还是自己造车轮呢?对此,网友们各抒己见。CSDN摘取了部分精彩评论,我们一起来探讨下。

jQuery是业内知名的JavaScript框架,它是轻量级的JS库,兼容CSS3,还可兼容各种浏览器。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且轻松为网站提供AJAX交互。jQuery一大优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。它的实现和设计可以说代表了JavaScript界最高的水平。


日前,寒冬winter在博客园的一篇关于《从jQuery谈库与框架的设计之优劣》的文章引发了众多开发者们的激烈探讨,文中他分别从解决问题、命名、接口设计、耦合四个方面来以jQuery为例总结库与框架设计的原则和优劣判断。

在谈到解决问题时,他例举了一个框架案例,他把这个库称为四则运算。

function add(a,b) {    return a+b;}function mul(a,b) {    return a*b;}function minus(a,b) {    return a-b;}function div(a,b) {    return a/b;}

这个库的API简洁优美,实现的更是优雅无比,它把四则运算统一成了函数形式,使得我们的开发更加方便。最强大的是,这个做法使得四则运算支持函数式编程,比如:

function acc(a,b,f) {    var jieguo = a; //http://weibo.com/2178807082/zk1kOcMPU    for(var i = 1; i<b; i++) {        jieguo = f(jieguo,a);    }    return jieguo<span style="line-height: 1.45em;">}</span>

这样,通过acc函数,我们可以轻易实现n次方运算,这正是函数式编程之美。

举这个例子是为了告诉大家,一个框架/库其实可以不需要解决任何问题——只要你会乱用概念、自吹和哄骗新手就够了。

下面我们来看看一个非常成功的框架——jQuery解决的问题,让我们来看看jQuery首页的"Brief Look"中给出的第一个例子。

DOM Traversal and Manipulation

$( "button.continue" ).html( "Next Step..." )
嗯,没错,jQuery希望帮助我们解决遍历DOM的问题,如果没有jQuery,我们大概要写一个traversal函数了。

function traversal(node, f) {    f(node);    if(node.children.length) {        for(var i = 0; i<node.children.length;i++)            traversal(node.children[i],f);    }}traversal(document.body,function(element){    if(element.tagName=="button" && element.className.match(/continue/)) {        element.innerHTML = "Next Step...";    }})

traversal这个函数真的是超麻烦不是么?竟然有175个字符呢!使用起来也有166个字符,用了jQuery之后,只要45个字符就可以搞定呢!好神奇!

好吧原谅我刚才把思维模式切换到了"write less, do more"模式,jQuery正是通过一个字符一个字符地节约程序员的工作量来达到这一伟大目标的。

压缩后仍达97k的jQuery竟然帮助我们少写了这么多代码,好神奇啊!这正是库/框架设计的要点,那就是"没有问题创造问题也要解决问题!"


那么究竟是用jQuery框架还是自造车轮呢?对此,网友们各抒己见。CSDN摘取了部分精彩评论,我们一起来探讨下。

@寒冬winter发表微博补充:jQuery当时硬从prototype嘴里啃下来的空间,yui一直不温不火,mootools两是prototype的改良主义,dojo一直挺烂但是有死粉,ext凭借差异化杀出血路。jq成功背后原因很复杂,多方因素。

@朴灵表示:@寒冬winter 和@玉伯也叫射雕 两个的观点都是对的。我曾经也黑过jQuery,原因是菜鸟太多,连jQuery都用不好,代码里满屏的$符号。实际角度赞同玉伯,菜鸟连$都写不好,自己写不是更糟吗?这里解释了为什么jQuery是事实上最好的DOM库。

@jQuery小组对此回复:JQ的设计更多的是出于在功能、扩展性、代码量上的平衡,很多似乎已模式化的思维并不一定要照搬到前端的开发场景中。

@IT技术精研院:优秀的框架设计,应该为整个流程做减法,而不是粗糙的叠加。code less, do more. 像JQuery这样优秀的框架设计应该被融入到下一代的HTTP规范中。

@一斯追求:JQuery确实是很强大的嘛,几十k的文件大小有那么强悍的功能实属不易,操作网页元素的时候省去了不少麻烦,尤其是实现Ajax效果的时候,有了它就是有了把利器啊,不然手写代码去建对象,自己post去请求还不把人给累死啊,还有JSon,我也夸一下,给力!

@程序猿小卡:1、jQuery神奇的多功能着实让人无力吐槽,用着挺爽的,但对于代码维护来说是个噩梦(jQuery的源码里到处是这种类型的多功能方法,印象中有个方法有7个参赛数);2、关于庞大的jQuery,已经到了压缩后还有97k的程度了?!现在已经可以做到按需模块拆分了(好吧我承认我其实没用过),所以这个问题应该没那么严重。

@超然台上仙认为:感觉jQuery弄得这么大很多都是在考虑兼容性的问题,如果能够使用最新的API肯定也不会这么复杂。另外jQuery的API确实挺好用啊,至少很容易懂。

@zegia_林并不赞成其观点:为了一个小功能而去引用庞大的jquery显然不值得,各种类库有各自的适用场景吧。

@根正苗红葫芦藤:噗,高端黑啊,无力吐槽ing。用框架主要是为了代码结构稳定、维护容易、知识互用性强。前端们太常写寿命不超过一年的玩意啦,偶等企业开发都是一用很多年2的,不好处处自造輪子的。

最后,用@郑银辉-小哥的话总结:每个框架都有其适合的场景,JQ功能丰富,文档详尽,易学易用,同时有众多插件,对于多数入门级开发者而言,的确是“必不可少”的。当然,局限性也非常明显,毕竟JQ是06年开发的,前端领域已经发生了很大的变化,而JQ的主干并没有变化,只是枝叶繁茂了点而已。

此外,网络上也不少兄弟高喊JQuery如何不好看的,然后再造个小JQuery,代码原封不动copy改个名就觉得革命面貌焕然一新的那种。

对此,各位网友你们是怎么看待的呢,欢迎与我们讨论。

更多精彩内容,欢迎@研发频道微博参与互动。

Android JNI开发高级篇 Android NDK开发技巧二 Android JNI开发进阶篇 Android JNI开发提高篇 Android JNI开发入门篇 Android NDK开发技巧一 Android数据库ContentProvider封装原理 Android Permission列表,ADT 0.9.9 bug Android Theme和Styles内部定义解析 Android平台下图表绘制相关方法 Activity类的runOnUiThread方法你用过吗 Android上鲜为人知的UI控件介绍和使用 获取Android手机上的图片和视频缩略图 Android JSON解析示例代码 Android ANR介绍与避免 Windows Phone 7 SDK完善度不如Android m3 Android中使用定时器TimerTask类介绍 控制Android LED灯颜色代码 Android应用Icon大小在不同分辨率下定义 Android控件美化Shape你会用吗? Android屏幕截图之View方法 Android开发者应该保持以下特质 Android Widget开发模板 Zipalign使用方法-SDK中的APK文件优化工具 Android蓝牙控制之2.X或以上 Android数组排序常见方法 使用OpenGL开发一个指南针 Android自绘GridView控件 Android平板开发注意事项 Android控件TextProgressBar进度条上显文字 Android内存管理-SoftReference的使用 在word文档中使用active控件引发的问题,请大家帮忙,急!!! 帮忙一下! 大家帮帮我吧! 我手头没有winxp光盘,可现在想安装IIS,谁能帮我,好象单独copy几个文件给我也行 关于表单嵌套问题,50分相送! 怎么传递参数给Midas服务器查询? 散个关于时间计算代码让大家品评!给分! 请问如何得到inifile文件的所有小节名? 本是学计算机的!现在却要去教书了!IT梦想泡汤了!! 真诚求解:关于校园局域网得ip地址与网外ip地址得关系问题 谢谢! 在两个web application之间能不能通过session传对象? 怎么把weblogic用向导创建的域删掉,重新配置 简单的问题:关于符号' " & 在word文档中使用active控件引发的问题,想请大家帮忙。急!!! 为什么G.723.1 在DShow里面用不了? 大虾呀、小弟我求救呀!快来帮帮我!郁闷呀! 我安装了win2003后,为什么声音驱动装不了? release为何不行? 在delphi中如何得到mysql里所有的数据库名?急!在线等!! 怎样获得例如另一个网页的内容,然后部分现实,原理是什么 怎样获得例如另一个网页的内容,然后部分显示,原理是什么 100分求MSDN下载地址!!! 菜鸟苦难,高手达人入,简单问题! 我有白头发了,你们也? 请教一个关于datagrid的弱弱的问题 DirectShow中通过摄像头获取图像,如何改变分辨率 关于Win2000做服务器,Win98做客户端,在98中如何设置连接Internet的问题? 我的php是怎么回事呀? 如何访问带密码的Access数据库? 关于程序员的数组方面的问题? 救菜鸟!给个范例! 为什么我在XP下文件夹加密加不了? 在word文档中使用active控件引发的问题。急!!! 我在我的frame中的一个页面中用一个button的onClick="javascript:window.close()"怎么关闭不起作用呢? 帮帮我吧,我asp刚入门,就要做网站,感觉心里好没底...... 红色紧急求救 我在北京找工作,各位仁兄帮帮看看 如何在窗体中动态生成组件? 如何实现显示在线者的信息,如注册会员多少人,访问者多少人等等(附三问) 50分求救,哪里有下载免费的VB6中文版? 求救!!!!!!!!!高分!! 大家进来看看这个效果怎么做! 哪能找到关于网络侦听的源程序?用VC做的,谢谢! 九月份就大四了,要分方向了,大家给点意见? 如何禁用ie选项中的“显示友好的http错误信息” 接了一个小小的酒店管理系统,问一下,值多少钱?(可别说我做坏了市场:)) 程序员考试的资料在哪下载?(.pdg的文件用什么阅读?) 我下载了JDK1.4.1_03安装以后JDK目录里没有1.3的Javac文件呀? 新手的问题(asp的源代码): vector&父类子类的问题 单片机如何实现霓虹灯控制,谢谢。 1.如图,AB⊥MN于B,CD⊥MN于,AB=CD,MB=NDZ.试说明;△ABN≌△CDM 囫囵吞枣,张冠李戴, 香农定理的意义 两条垂线的交点叫什么? 小明和小红玩下面的游戏:他们轮流在黑板上写一个数字,小红先开始,每一个接下去的数字都写在已经在黑板上的数字顺序的左边或右边.证明:小红可以避免在小明把数字归零之前写出一个 有一篇英语阅读不会做...急呀...Don’t you find fewer and fewer animals can be seen in nature?Do you know more and more animals are in danger of disappearance?How to protect the endangered animals is a great problem for us all.I personally 如图,点B在MN上,过线段AB的中点O作MN的平分线,分别交∠ABM的平分线和∠ABN的平分线于点C、D.求证:(1)△BCD是直角三角形;(2)四边形ACBD式矩形. “囫囵吞枣”“张冠李戴”“饱经风霜”的意思是什么? 看看对不——一篇英语阅读 已知:如图所示,点B在MN上,过AB的中点O作MN的平行线,分别交∠ABM的平分线和∠ABN的平分线于C,D.求证:四边形ACBD是矩形 大家帮我一道题:甲乙两人轮流在黑板上写下不超过10的自然数规定不能写已写过的数的因数.最后不能写的人输,怎样取胜? 英语翻译Monsoons are strong winds affecting the weather of several Asian countries.From April to October,the summer monsoon moves from the southwest to the northeast,starting in India and continuing through several Southeast Asian countries.In th 已知:如图所示,点B在MN上,过AB的中点O作MN的平行线,分别交∠ABM的平分线和∠ABN的平分线于C,D.求证:四边形ACBD是矩形 甲、乙两人轮流在黑板上写上不超过14的自然数,书写规则是:不允许写在黑板上写过的数的约数,轮到书写人 英语翻译``这个是一个很严肃的问题,请大家认真回答! 如图,点B在MN上,过AB的中点M N的平分线,分别交角ABM的平分线和角ABN的平分线于点C D如图,点B在MN上,过AB的中点M N的平分线,分别交角ABM的平分线和角ABN的平分线于点C D, 判断四边形ACBD的形状并证 在一高塔上,一人水平伸出手,以10m/s的初速度竖直上抛一石子,手离地面的高度为15m,g=10m/s^2,试求:(1)石子到达最高点所需的时间 (2)石子落回抛出点的速度 把“我比想象中更爱你”翻译成英文…谢谢! 如图,点B在MN上,过AB的中点O作MN的平行线,分别交角ABM的平分线和角ABN的平分线于点C,D.试判断四边形ACBD的形状,并证明你的结论.这道题网上有答案,但我不知道为什么cbd等于90度 思维品质训练与提高 第52页 1、某酒店九月份的营业额36000元,如果按营业额的3%缴纳营业额。九月份这个酒店应缴纳敬业税款多少元?2、小张五月份的收入为4500元,税法规定收入总额超过12 香农定理的物理背景是什么? 通俗的告诉我OPGW与ADSS区别? 甲乙轮流写下不超过10个自然数,禁止写过的数的约数,最后不能写的人失败,甲第一个写,谁一定获胜?怎样获胜.0也是自然数 Eddy在名字中翻译为汉语是什么意思? 为什么输电线路同步架设OPPC及OPGW光缆时要在两端采用ADSS无金属光缆 甲乙轮流写下不超过10的自然数,禁止写已写过数的约数,最后不能写的失败,若甲先写,甲写数字()时,必甲写数字()时,必胜。其中,此数字不一定是一个。 求古诗《竹阁》- 苏轼 苏轼竹阁海山兜率两茫然,古寺无人竹满轩.白鹤不留归后语,苍龙犹是种时孙.两丛恰似萧郎笔,十亩空怀渭上村.欲把新诗问遗像,病维摩诘更无言. 数学上怎么区分上凹 下凸 上凸 下凹如f(X)的一次导数小于0,二次导数大于0.则是那一种类型.你们说的都含糊不清啊,怎么精确判断四种情况,当一次导数大于或小于0,二次导数大于或小 泰戈尔诗集点评 同志们 一个下岗女工在农贸市场,以每千克18元批发两筐深州蜜桃,打算以每千克2.4元卖出,由于不会保鲜,出售中不出现烂桃,先后拦掉5.5千克,下岗女工不忍心蒙骗顾客,扔掉烂桃,卖完后一核帐只赚了20. 圆是凸图形还是凹图形,说明理由 甲乙两人轮流在黑板上写上不超过14的自然数.书写规则是:不允许写黑板上已写过的数的约数轮到书写人无法再写时就是输者.现甲先写,乙后写,谁能取胜?应采取什么对策?有没有类似题目的 王蜜桃是谁 五年级共有学生312人,选出男生的11分之1和24名女生参加竞赛,剩下的男生是女生的2倍,五年级男,女生各有多少 我想我是疯了不然怎么会这样英文怎么说 蜜桃地址蜜桃成熟 y=2x²-5x+2图像与X轴交点的坐标是多少和2x²-5x+2>0的解集是多少? 已知:AD=BC,BE⊥AC于E,DF⊥AC于F,且BE=DF,求证:1.△ABE全等与△CDF;2.AB=CD;3.AB平行CD, 蜜桃英文是什么 囫囵吞枣比喻什么 两条直线相交,四个交角中的一个锐角或一个直角称为这两直线的夹角,如果在平面上画N条直线,要求它们两两相交,并且夹角只能是15度,30度,45度,60度,75度90度之一.求:N的最大值是多少? 英语阅读理解高手们做 囫囵吞枣常用来比喻什么 两条直线相交成的四个角有可能都是锐角.(对还是错).{写好的加财富} 求这英语阅读理解这么做A traveler was staying in an Egyptian village.One day,she held up her camera to take pictures of the children at play.Suddenly the young ones began to shout in protest (反对).The traveler’s face turned red and she y=-1/3x,y=2x,y=7/2x,y=-5x的图像哪个最靠近Y轴,有什么规律? 两条直线两两橡胶而成的锐角或直角称为两条直线的夹角.现平面上有若干条两两相交而.现平面上有若干条两两相交而且夹角上只能是30°60°或90°问至多有()条直线 成语接龙:一心一意 —— 意想不到 函数y=log1/3(x^2-6x+5)的单调递增区间为为什么不是(1,3) 囫囵吞枣的比喻意义是什么 平面上有8条直线两两相交,试证明在所有的交角中至少有一个角小于23度. 如果AB垂直于点B,CD垂直于MN于点D,BP平分角ABN,DQ平分角CDN,说明BP平行于DQ 节能灯都用什么销售模式 两条直线相交可以形成四个( ) A.锐角 B.钝角 c.直角 如图,AB//DC,BE、DF分别平方角ABN与角CDN.(1)角1与角2的大小有 何关系?为什么?(2)BE与DF平行吗?为什么?平方变成平分 甲乙做游戏,依次轮流在黑板上写数字,每人每次写一个数字,自左至右排成一行,甲先写,若某人写过甲乙做游戏,依次轮流在黑板上写数字,每人每次写一个数字,自左至右排成一行,甲先写,若某人 求对香农第二定理的理解根据香农第二定理陈述:我理解的是总可以找到一种编码,让信道的信息速率接近于理想,同时又可以最小错误译码概率Pmin达到任意小.但是我们知道信息的有效性(信 我要几篇200字左右的周记啊!不用太好的 如图四边形ABCD是边长为5的正方形,以BC的中点O为原点,BC所在直线为x如图①,四边形ABCD是边长为5的正方形,以BC的中点O为原点,BC所在直线为x轴建立平面直角坐标系,抛物线y=ax^2(a≠0)经过A,O,D三点 香农三大定理 美国西部山区蕴含创业潜力 或成下一个美威州两飞机3000米高空相撞 11德国拒绝为斯诺登提供庇护 避免影响德美建议叙问题会议11月举行 不确信反美新泽西州商场发生枪击 在场民众描述刚果(金)政府拒绝停战 要求反政府武伊朗议长拉里贾尼:美伊关系改善为时尚奥巴马“网络水军”利用推特打医保舆论帮总统“解围”专门紧盯政治异见者 奥日媒:安倍上任后已打13次高尔夫 展穆尔西出庭高喊“我是总统”东京股市日经股指微涨俄罗斯惊现一专杀老年女性杀人狂 两年男友不肯吃麦当劳 女友开车将其辗过3日本研发机器人摇滚乐队:“鼓手”长6日拟将化妆品等商品列入外国游客免税购摩洛哥一架客机在蒙特利尔机场起火 5印度火星项目负责人祈祷发射成功 称导俄罗斯大胆盗贼偷警察大楼 部分武器及美国务卿克里访埃及 美官员称或恢复对不想脱外套 美国3岁女童被托儿所长活英公布方案要“硬脱欧”春节自驾游 这些要备好10岁女娃写百副春联送亲友《2017美国投资移民与资产配置趋势社保转移接续 保障农民工权益首届新西部大学生影像节开幕排查60批次不合格化妆品平安春运路 榆林交警与你同行要像尊重专家一样尊重企业家英国谢菲尔德城市代表团访问铜川西安今限行3和860名道德模范受表彰借助校电视台宣传交通安全底盘装甲别“迷信”小区绿化树咋被剃“光头”二一五医院特邀中国工程院院士樊代明教819户贫困户喜领123万分红游沙湖咸阳今日限行尾号3和8少年出走两日被民警送回和“吉娃”们一起过年啦!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘