观点:不要太依赖JavaScript库

标签: 外文翻译 API HTML5 javascript JavaScript库 | 发表时间:2012-03-29 12:08 | 作者:张 鑫旭
出处:http://www.zhangxinxu.com/wordpress

by zhangxinxu from http://www.zhangxinxu.com
本文地址: http://www.zhangxinxu.com/wordpress/?p=2314

本文翻译自Ross Bruniges 3月21号写的 Don’t rely too much on JavaScript libraries一文。

下面就来看看为何Ross Bruniges说不要过分依赖JavaScript库~~

库是很棒的东西,但千万不要因此让你JavaScript的学习打折扣。 – by 开发者Ross Bruniges

JavaScript库已经成为了一个web开发人员的工具包的重要组成部分,一个很好的理由(zxx: 应指指依赖理由)。库让每个浏览器的JavaScript实现无差异,使开发人员可以专注于编写代码,10次中有9次将只是工作 – 这是一个了不起的事情。

但你可曾停下来想过学习JavaScript,而不是一切都依靠库?尽管我不主张离开库,但我依然要给你些东西让你去思考,以及可能会让您更上一层楼的 JavaScript权威指南

1. 库库也会尿裤裆,知识在手莫惊慌

每个开发者都怕怕的事情之一就是一些你依赖的东西不顶用了(zxx: 应指冲突之类)。这可能是个核心的库函数或是插件,而这两个都是你迫切需要的(用来修复某些问题)。

库提供了很好的抽象层于浏览器的各种差异之上,但是,“引擎盖”下面,它们仅仅就是JavaScript, 因此,一点点的基础知识就可以让你开始明白大致哪里出了问题。即使你无法自己修正该错误,你还可以高亮错误的位置然后反馈给(编写该)库的核心团队。

2. 坏坏代码难免有,越早发现越好走

如果你使用允许社区插件(zxx:指论坛之类的些杂碎插件)的库(zxx: 如jQuery, 鱼龙混杂太多),您可能已经遇到了一个不得不从你项目上咔嚓掉的糟糕插件,或者你花了大量时间试图让其工作。能够注意到一种可能会造成性能问题的模式就意味着站点上线后是愉悦的还是让人不爽的客户端。

3. 买爱疯,宁换肾;需不需要先自问?

根据你要求的功能,你需要的代码可能不需要库。例如,你只是做一些简单的dom操作,值得你一试。

页面的大小和性能是web上重要因素,一个JavaScript的大小20K ~ 80K大小不等。在高度连接的桌面设备上,80Kb不算多。但是,如果你的站点是针对手机用户的,则越轻量越好。我最近推出了一个CSS动画可用时只需要JavaScript的站点。

我决定我并不需要的库所提供的援助之手,因为我只要处理一个浏览器JavaScript实现。 最终,JavaScript的总大小约2KB。

4. 国际油价要接轨,技术俱进抱大腿

JavaScript是一个不断发展的语言,我们现在身处一个全新的世界,远远超出我们认为可用的能力的范围。你可以在Server端使用 node.js, 你可以通过app访问地理位置信息。HTML5提供了新的APIs,可用于控制嵌入式多媒体,信息存储,并确定你的用户是否在线。

因为我们正在谈论有关新技术和开发技术,文档目前的水平是能够在传统深入和密集API文档中发现所需。了解JavaScript对于你研究这些你想使用的功能会是一个巨大的帮助。许多网上例子不使用库,有助于你能够从最底层准确了解发生了什么。

学习资源

那么,我所说的这些对你有所触动了吗?如果是这样,开始学习的最佳之地就是你使用的JS库,在 code.google.com/apis/library上有非压缩版本,而且我推荐你从最新的版本入手。

如果你遇到什么不懂的,可以去 Mozilla MDC(zxx:MDC指Mozilla Developer Center, 类似于国内蓝色理想)寻求解释。如果你寻找HTML5提供的可能示例, html5demos.com满是精彩而又简单的例子。

——— 以上就是翻译内容了 ———

译者现身说法

是不是感觉作者说得有点淡,一股忧郁的无力吐槽的感觉。无法让那些依赖库完成一些功能的泛泛之辈们引起重视,因此,末了,我也一舒己见。

首先,作者的观点我都是赞同的,但是在托辞与表达上过于苍白无力,无法发人深省,看了只会让人打瞌睡。

如果你认定了前端这条路,依赖JavaScript库只会让你日后成为一个悲催的前端人员:工资涨不上,新技术跟不上,混迹于各个公司间,妄图有所发展,结果都是平淡收场,虽说铁定饿不死,但是而立之年的人生压力会让你觉得混得真是惨淡。这些都是可以预见的。

在中国,从事所谓前端之人何其多也,可以依赖JavaScript库实现功能的人何其多也,比牛魔王身上的虱子还要多。时间流逝,就凭抱着JS库过日子,你怎么可能从这么多人之间脱颖而出(当然你爸姓李或有干爹另当别论)。

正如Ross Bruniges所说的,如果JS库报错或是插件冲突了,你晓得症结在哪里吗?好不容易从哪搞来个插件,效果实现了,一上线,尼玛IE6下老是爆掉,你知道什么原因吗?手机页面,没有JS库你能搞定里面的交互吗?你能读懂node.js代码吗?你能读懂HTML5 APIs文档中的JS示例代码吗?如果不能,你永远就是在别人手下干活,按部就班做事的命,这东西不是钓鱼,靠经验积累就行的。你必须好好学习原生JS, 这决定了你以后的位置和高度。

世事无常,如何应对风云万变,扎实的基本功才是王道(学什么新东西都快)。新技术层出不穷,各种框架、库应接不暇,三年河东三年河西,如何在时代大潮中屹立不倒?只要掌握了语言本身,才能兵来将敌水来土堰,永远不要担心没饭吃。

设想下,如果jQuery被国家禁止使用了,你还能完成页面上的各类交互吗?不要将自己栓死在一棵树上。

依赖库,只是应用;掌握核心,才能创造。应用与创造的差异不言而谕。

原创文章,转载请注明来自 张鑫旭-鑫空间-鑫生活[ http://www.zhangxinxu.com]
本文地址: http://www.zhangxinxu.com/wordpress/?p=2314

(本篇完)

有话要说,点击 这里发表评论。

相关 [javascript] 推荐:

Javascript诞生记

- Milido - 阮一峰的网络日志
二周前,我谈了一点Javascript的历史. 今天把这部分补全,从历史的角度,说明Javascript到底是如何设计出来的. 只有了解这段历史,才能明白Javascript为什么是现在的样子. 我依据的资料,主要是Brendan Eich的自述. "1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.

JavaScript,你懂的

- dylan - keakon的涂鸦馆
经常有人问我,JavaScript应该怎么学. 先学基本语法,如果曾学过C等语言,应该1小时内就能掌握了. 再去使用内置的函数、方法和DOM API,熟悉它能干什么;而在学习DOM API的过程中,你还不得不与HTML和CSS打交道. 然后弄懂匿名函数和闭包,学会至少一个常用的JavaScript库(例如jQuery).

Javascript 里跑Linux

- rockmaple - Shellex's Blog
牛逼到暴的大拿 Fabrice Bellard,用Javascript实现了一个x86 PC 模拟器,然后成功在这个模拟器里面跑Linux(请用Firefox 4 / Google Chrome 11打开,Chome 12有BUG). 关于这个东西… 伊说 “I did it for fun“,大大啊大大啊….

高效 JavaScript

- xtps - ITeye论坛最新讨论
传统上,网页中不会有大量的脚本,至少脚本很少会影响网页的性能. 但随着网页越来越像 Web 应用程序,脚本的效率对网页性能影响越来越大. 而且使用 Web 技术开发的应用程序现在越来越多,因此提高脚本的性能变得很重要. 对于桌面应用程序,通常使用编译器将源代码转换为二进制程序. 编译器可以花费大量时间优化最终二进制程序的效率.

你得学JavaScript

- 蒋冰 - 伯乐在线 -博客
  注:本文由 敏捷翻译 - 蒋少雄 翻译自 Kenny Meyers 的博文.   如果三年前你问我应该学什么语言,我会告诉你是Ruby.   如果你现在想学一门语言的话,你应该学习JavaScript..   我认为,每一位Web开发人员都应该学习JavaScript. 目前推出的许多新技术都支持这个观点.

javascript 贪食蛇

- Xin - 博客园-首页原创精华区
我的程序用javascript与Html中的table结合,实现的简单的贪食蛇游戏,游戏的主要特点,可调整蛇移动速度,可调整蛇移动范围,碰壁、咬到身体则“Game Over. 游戏并不完善,只是实现了主要的功用,有设计不合理的地方,欢迎您感大家提意见.        实现方法:由javascript语言中的setInterval方法驱动整个游戏程序,设置“nowDirection”即蛇的当前移动方向为全局变量,由setInterval方法定时获取蛇的移动方向,由document.onkeydown()捕捉当前按键(上、下、左、右)以修改nowDirection,这样就可以用方向按键控制蛇周期时间的定向移动.

你不懂Javascript

- 英建 - 黑客志
过去几年我注意到技术圈一个很奇怪的现象,有太多程序员将那些他们只是有过非常浅显的了解,但其实根本就不懂的技术写到他们的简历中,这个现象几乎每种语言都有,但这其中最严重的就要数Javascript了. 出现这种状况的一个很大的原因就是现如今几乎每个开发者的工作都或多或少要依赖于Javascript,但大多数人并不真的理解这门语言,他们常用的学习方式是复制粘贴,使用这种方式,你永远不会真正学会这门语言,而只能得到一个你已经懂了的假象.

Javascript 中的 var

- - 酷壳 - CoolShell.cn
MelonCard发布了一篇文章——” how one missing var ruined our launch“(”少写了一个var毁了我的网站”),这篇文章是说MelonCard用Node.js做后台,因为出了一个小高峰——有50-100人注册,结果整个网站都不响应了,而且还出现了很多奇怪的问题.

JavaScript 基础

- - CSDN博客推荐文章
JavaScript可以出现在HTML的任意地方,甚至在之前插入也不成问题,使用标签. 不过要在框架网页中插入的话,就一定要在之前插入,否则不会运行. JavaScript对数据类型要求不严格,一般来说,声明变量的时候不需要声明类型,而且就算声明了类型,在使用过程中也可以给变量赋予其他类型的值,声明变量使用var关键字.

javaScript DOM使用

- - CSDN博客互联网推荐文章
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. 1 修改HTML元素内容. document.write(Date()); //在输入流中直接写 document.getElementById(id).innerHTML=new HTML. //改变已经有的元素内容 document.getElementById("image").src="landscape.jpg";.