【翻译】使用JavaScript库还是自写代码?

  有时候在写JavaScript添加到你的网页中的时候,你将需要决定是使用已有的可用的JavaScript库还是自己写所有代码。其中每个各有优缺点,因此没有任何一种方式对每个人来说都是绝对正确的选择。你必须做出决定以这两种方法中的哪一种来写你的JavaScript,为了帮助您作出明智的决定哪个更适合你,我们将对比一下这两种方法的一些优劣。

  在过去使用JavaScript库的一个缺点是,库往往相当大,也许包括不少在你的个人网页中实际是不怎么使用的代码。或许,编写自己的代码可以被认为是最能完全满足你真正需求的方法,而且没有其他比这更有效的方法了。但在引入Google的一个通用仓库后,每个人都可用通过链接使用比较流行的JavaScript库的时候,就否定了这种说法,因为如果你链接到的是Google的库副本,而不是使用自己的副本,这样大量访客将会有已经缓冲在他们的浏览器上的库,实际须下载的只是你页面的一部分代码而已。这样做可以使得使用它比自己做的库更快。

  自己编写代码而非依赖于库的一个优点是,你不用学太多东西。要能够自写JavaScript,你只需要学习JavaScript就可以了。而要能够使用库则需要同时学习JavaScript以及这个库。你可能可以做到像这样的事情,只学习库而还没有学习JavaScript,但就能够利用的最好方式来使用这个库,那你将需要比那些只是使用JavaScript来编写自己代码的典型的人要对JavaScript有更多的了解。

  使用库的优势在于,库已处理了你需要运行的90%的操作,这意味着你只需要编写的余下10%。在有大量的代码编写的时候,这可以节省你编写代码的时间。而在除了编写代码,还需要对其进行测试的时候,它就可能会或可能不会节省时间了,除非你深入了解如何让你所选的库在测试时间做应该做的事,使用库最终可能会比你自己写代码大大延长了时间。

  另一件你要考虑的事是,在一个给定的库中包含了多少代码是你实现你想达到的目标将实际需要使用到的,以及库实际上是否包括了所有你想要的操作。如果你不能找到一个有你所需的一切功能的库,那么你就需要自己编写其余的代码或尝试引入第二个包括了缺少的功能的库。取决于库是如何工作,将可能可以或可能不可以在相同的网页中同时使用两个库。

  事实上在你考虑使用库之前,你需要自己写多少JavaScript代码也会影响你的决定。如果你已经自己写了能执行所有你需要的不同函数的处理,则有可能打消你选用一个同样提供所有这些相同功能但实现方式不同的库的想法。鉴于这些首先写这些库的人一般都是对JavaScript具有深入了解的人,你必须承认的一个合理的可能性是,一个提供这些功能的库比你自己写的更有效率(除非你也有一个JavaScript专家)。

  你要添加到网页中的JavaScript处理是什么样的类型,也将影响是否合适使用库。如果你只把很小的特效到你的网页,只需要几行JavaScript代码,那么比起自写所有的代码,用一个库可能会导致你不得不编写更多的代码去作为实现库工作方式的接口。当然,反过来同样适应,如果你要添加到你的网页中的处理是数量相当大的且与你选用的库的功能类型密切匹配的,那么都可以让库为你处理。

  选择一个功能是密切符合你想要使用到你的网页中的库,并很好的理解JavaScript以及这个库,那就可以快速和容易加入所有你想要的功能,以这种现代的不唐突的方式可能是最适合你的方法。另外,如果你已经写了多年的JavaScript,而且已经有你的能执行大多数你不断要求的功能的代码库,那你就可以不必选择和学习任何一个库就达到相当的效果。

个人总结

  个人觉得,Stephen Chapman的这篇文章很好的对比了JavaScript库和自写代码的优缺点,其实,如果能够在使用JavaScript库的时候,充分的利用它,去实现它应有的价值,那JavaScript库将会是一种很好的工具,一种创造富客户端以及给用户带来良好体验的一种工具,而非成为加载页面时的一种额外的负担。而对于喜欢自写代码的人,我觉得也有必要将一些功能,有如DOM操作和事件处理封装起来,毕竟原生的JavaScript在不同的浏览器存在着较多兼容问题和效率问题(可参考 阿当的《JavaScript分层概念》)。同时我还觉得,如果在使用一个流行的JavaScript库(如jQuery、YUI、Ext JS)的时候,能去了解一下这些库的实现机制,这样才能更好的驾驭这些库!

 

中文由维奇翻译,如有转载请注明出处,翻译如有错漏欢迎留言指出,谢谢!

中文地址:【翻译】使用JavaScript库还是自写代码

英文原文:JavaScript Library or Code Yourself

 

PS:

  近期将推出新文章《创建自己的JavaScript库》,敬请期待,嘻嘻~~

标签: tips, javascript
posted @ 2010-01-26 20:20 漫凯维奇 阅读(3678) 评论(15) 编辑 收藏

 回复 引用 查看   
#1楼 2010-01-26 20:58       
应该是 使用自己写的 javascript库。

恩。正道!

 回复 引用 查看   
#2楼 2010-01-26 21:55 oec2003      
博皮整的不错
 回复 引用 查看   
#3楼 2010-01-26 22:46 Jon.Hong      
博皮整的不错

不知可否借用

 回复 引用 查看   
#4楼 2010-01-26 23:27 Hafeyang      
未必吧,我觉得看应用场合,小型的引用可以直接写就行。大型的应用我建议使用现有的比较成熟的库。
但是我是不主张自己封装的,自己封装只是闭门造车,纵然个人功底相当了得,你可以先封装一个比较核心的库,后来发现在这个库的基础上再开发自己的应用,这样花费的功夫太多,到头来发现跟现在的主流javascript库是做的同一个事情,只是无端的多花了一些精力。

 回复 引用 查看   
#5楼 2010-01-26 23:46 Tony Lee      
Header下面那条选项栏的动态效果是怎么弄的啊?
 回复 引用 查看   
#6楼 2010-01-27 08:29 Kevin Zou      
恰恰相反,我一般都自己封裝。只有建立自己的類庫,才能操控一切。
 回复 引用 查看   
#7楼 2010-01-27 09:48 jowo      
怎么总感觉读起来有点拗口呢
难道有部分是机器翻译的???

 回复 引用 查看   
#8楼[楼主] 2010-01-27 10:59 漫凯维奇      
@jowo
鉴于本人英文能力一般,且原文句子都较长,断句上有些不足,导致句子有些不顺...但我觉得这篇文章原文不错,勉强凑合才翻译出来,有存在问题还有请指出,谢谢!~

 回复 引用 查看   
#9楼 2010-01-27 15:39 vision.Ding      
这样翻译就行了,能看懂了!
 回复 引用 查看   
#10楼 2010-01-27 16:39 Aowind      
还是喜欢自己完全掌控一切。
那怕是用别人的库,也得自己完全明白,不允许发生脱离自己控制而产生的不可知错误

 回复 引用 查看   
#11楼[楼主] 2010-01-27 19:36 漫凯维奇      
@Aowind
英雄所见略同~~嘻嘻~~

 回复 引用 查看   
#12楼 2010-04-01 15:25 cloudgamer      
这要看需要什么
要使用一个工具时 就应该使用库
要学习一门语言 就要自己写js了

 回复 引用 查看   
#13楼 2010-04-01 18:47 Mamboer      
我觉得答案前人早已经给我们了,一句话,像博主的座右铭:站在巨人的肩膀上!!Javascript本身也是前人创作的解释语言,我们不可能自己写另外一套叫scriptjava的东东来做javascript做的事情哈

我是不主张自己封装的,自己封装只是闭门造车,纵然个人功底相当了得,你可以先封装一个比较核心的库,后来发现在这个库的基础上再开发自己的应用,这样花费的功夫太多


-----------------------------------------------
the north face outlet

 回复 引用   
#15楼 2011-06-26 11:11 子非鱼1[未注册用户]
我认为,小东西自己写库好,而大项目啥的,库肯定也不用自己一个人写。
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1656968 S3JrdUhreSU=