观点:不要太依赖JavaScript库

这篇文章发布于 2012年03月29日,星期四,12:08,归类于 外文翻译。 阅读 84586 次, 今日 4 次 34 条评论

 
本文翻译自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被国家禁止使用了,你还能完成页面上的各类交互吗?不要将自己栓死在一棵树上。

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

(本篇完)

分享到:


发表评论(目前34 条评论)

  1. 颜海镜说道:

    老文章了

  2. Carl说道:

    张太师可以出几本书看看,绝对大麦!

  3. bigtall说道:

    如果jquery被国家禁止了。。。发人省醒啊,我们一直在用别人搞好的,一直在套用、模仿,从未想过创造。

  4. lookman说道:

    原来你是华科毕业的哇

  5. 于江水说道:

    如果jQuery被国家禁止使用了,我还有 KISSY 哈哈

  6. 华定平说道:

    国家吃多了撑的 要禁用jQuery 哈哈

  7. wade04035016说道:

    jquery里面的思想应该过几年就会融合到一门取代js的语言当中。
    到时候浏览器编程语言里面 有了class, 有了 extend, 有了 $.get()
    那时候就是全民编程的时代了

    • 某某某说道:

      现在这些都有了,class,Object.assign,fetch(),但是……各种各样新框架来了。

  8. faduii说道:

    不错,现在太多的库,有的时候选择也是一种困难的时候,更需要深入的了解库的实现。

  9. bohemouse说道:

    依赖库,只是应用;掌握核心,才能创造。
    您的博客真漂亮

  10. skylence说道:

    绝对的顶 张老板!我正打算啃犀牛。

  11. bohrasd说道:

    旁边的“速写”很带感…… ^o^

  12. AlphaTr说道:

    支持博主观点,只有学习原生的 JavaScript 才是王道~~~

  13. 90win说道:

    小程序员确实是需要库的支持啊~

  14. 胖胖吉说道:

    JS库只是一种提高效率的工具,javascript的学习才是持续发展的王道,支持博主。

  15. luhuan说道:

    开始研究前端并不是很久,深感原生js确实是很重要的,《javascript权威指南》读个两三遍,然后《javascript高级编程》来个一两遍,原生javascript基础就差不多了,接下来就是实践与创造了。

  16. r23d说道:

    技术进步就是要让工作更简单更效率,何况是IT行业,就像photoshop一样,哪天国家禁止使用,是不是设计师都得自己拿着纸,带着尺去画呢?

  17. 一路说道:

    我等俗人,老张你岂能了解。

  18. 一枚蜗牛说道:

    进前端也一年多一个月了,现在就在学习原生JS的东西,思路、算法,etc…很重要

  19. 滴水成冰说道:

    不是计算机专业,js感觉学起来有点费劲,怎么弄?

  20. crossyou说道:

    那几个大标题很有意思~~

  21. riophae说道:

    其实 JavaScript 很容易学.. 难的还是各浏览器间实现上的差异.

  22. 夜聆风说道:

    张哥的文章 每天都看 顶顶更健康

  23. 韭菜说道:

    老张非常有想法啊,哎,可惜我们一般人,JS水平确实有限啊。

  24. alanerzhao说道:

    张老师总是更新博客,我都好喜欢看,理论加实践,慢慢都感觉自己有了你的思想了。

  25. AJ说道:

    话虽如此,但我觉得这文章是写给在职前端看的。试想要一些毕业生们刚进岗位就能熟悉原生JS,我觉得是一种奢望(现在的毕业生能完成简单DOM操作就不错了)。个人认为,能够实用库解决岗位需要技能再去钻研底层实现才是现今前端新手的真实写照。现在前端职位门槛将会越来越高,不赶快进入门槛,而沉醉于个人的技术造诣,等你出关,岗位门槛已经高得把你拒于门外了。

    • 张 鑫旭说道:

      @AJ 确实,说得很在理。同时,实用库对于培养写JS代码的兴趣很有帮助——因为容易出效果,易获得成就感,虽然很小。

  26. 张世飞说道:

    我做了个按钮.
    鼠标经过和离开时颜色会发生变化.然后我用js做了一个点击和再次点击是颜色也发生变化.
    但是只要我点击后.鼠标再经过他颜色就不会发生变化了
    一个BUG..但是我不知道怎么解决.谁帮我看看
    http://kuai.xunlei.com/d/SAGRROYNSWWF

  27. mio说道:

    请博主推荐些适合没有js基础的新手阅读的js书籍吧,谢谢

  28. 紫云飞说道:

    MDN类似于蓝色理想??是这样的吗

  29. robertsky说道:

    jQuery被国家禁止使用了,这句话亮了