我是一个野生JavaScript程序员,我相信大多数JavaScript程序员都是野蛮生长,靠的是自身的好奇和勤勉。
什么是野生JavaScript程序员?我是这样定义的:基本靠自学;通过不停的`console.log`和对比来写出凑合能运行的页面;页面上充斥着全局变量;命名风格随心所欲,受到自学的其他语言的影响;调试异常困难;只能写出耦合度低的小型页面;配置数据和代码耦合紧密,修改数据困难;随处定义变量;随意注释或者不注释;有大量从stackoverflow拷贝的代码……
对于野生JavaScript程序员,也许可以很开心地做自己的小项目,但当需要多人合作的时候,就会让团队陷入噩梦。因为“程序是给人读的,只是偶尔让计算机执行一下”,所以勉强能运行的程序不是我们的目标,我们的目标是写出可维护的JavaScript。之前也读过《代码整洁之道》,是针对所有语言的通用手册,比较泛泛而谈,但本书针对性很强,没有散弹枪,每一颗子弹都狙击到目标上:糟糕的JavaScript代码。
本书适合跟jslint配合使用,因为jslint能检查出很多人可能漏掉的细节:比如没有在`function`顶部就声明所有的变量,比如缩进,比如没有声明“strict mode”。
下面说说印象比较深的几章:
第6章 避免使用全局变量
我之前知道JavaScript变量如果没有用`var`来声明的话(而且全局没有同名变量),会隐式地创建全局变量,所以我就知道随处使用`var`,本身告诉我,“所有的var语句都会提前到包含这段逻辑的函数的顶部执行”,所以应该在函数的顶部定义所有的局部变量。
而且,由于JavaScript没有块作用域,所以在`for`循环和`if`中创建变量是没有意义的,都应该提前到函数的顶部去定义。
那么如何避免全局变量呢?本章提出了几种解决方案:
- 避免意外的全局变量——声明“strict mode”
- 单全局变量方式——把所有的功能都封装到一个对象中
- 零全局变量——创建一个即时执行的匿名函数
第11章 不是你的对象不要动
说实话,我犯过这样的错误,我在创建一个iOS项目的时候,其中的webview的JavaScript代码需要在xcode的控制台输出信息,我就重写了`console.log`这个函数,当时觉得这个小聪明很方便,后来却给我带来了无尽的麻烦,总之我后来又创建了一个新的对象ios来专门做这件事。
第9章 将配置数据从代码中分离出来
也是血泪教训,数据(比如颜色,宽度等)耦合到代码中,修改的时候异常困难,所以本章建议单独创建一个配置对象来修改数据,并且还提供了一些工具来把java配置文件转化成json数据。
本书值得经常翻一翻,而且篇幅短小,是非常不错的床头技术书。
野生JavaScript程序员必读
对“野生JavaScript程序员必读”的回应
《编写可维护的JavaScript》热门书评
-
野生JavaScript程序员必读
17有用 2无用 Yuguo 2013-04-08
我是一个野生JavaScript程序员,我相信大多数JavaScript程序员都是野蛮生长,靠的是自身的好奇和勤勉。什么是野生JavaScript程序员?我是这样定义的:基本靠自学;通过不停的`console.log`和对比来写出凑合能运行的页面;页面上充斥着全局变量;命名风格随心所欲,受到自学的其...
-
呵呵
11有用 1无用 谷神出幕 2013-04-01
如此之薄的一本书,第一版次整本读下来,如果很细心的话你会发现有n多个错误,责任编辑,难道你是边打飞机边工作的么?我只能说这尼玛太没有职业道德了!这实在太符合国产的现状了!关于翻译,有兴趣的可以看看《编码的奥秘》,呵呵俩字已经代表我的态度!挣钱——>不择手段地挣钱——>移民——>摆脱...
-
一些翻译和排版的问题
1有用 0无用 seasmiles 2013-04-09
本书的第二部分是精华。倒没太多新东西,之前的《高性能JS》《JS高级程序设计》以及《JS模式》大部分都提到过,这里算是个总结。让人很不爽的一点是:原书中的“提示建议”,是以“爪印”图标和不同的样式跟正文区分开的;中文版中图标和样式都被干掉了,跟正文混在一起。奇怪的是:前言中“本书约定”里这些图标倒是...
-
既能让其基础打得更牢,也能让你更上一层楼!
0有用 1无用 计算机新书资讯 2013-03-26
无论你是在校学生还是前端工程师都不可不阅之书,无论是初学者还是很有经验开发工程师它既能让其基础打得更牢,也能让你更上一层楼!一部构建编码风格手册的经典著作,一部帮助开发团队从“游击队”走向“正规军”的伟大之作,一部错过为之后悔的最新力作!...
-
如中国足球一样粗糙的翻译
0有用 0无用 america 2013-04-12
前几天同事刚推荐的这本“乌龟书”说是牛逼人物写的,大致翻了一遍,如中国足球一样粗糙的翻译是这本书中文版最大的败笔,翻译的太随便了,很多词不达意或不到位的地方,也不知道是译者英文水平的问题还是。。。...
书名: 编写可维护的JavaScript
作者: 扎卡斯
出版社: 人民邮电出版社
原作名: Maintainable JavaScript
译者: 郭凯 | 张散集 | 李晶
出版年: 2013-4
页数: 226
定价: 55.00元
ISBN: 9787115310088

