《编写可维护的JavaScript》书评

出版社:人民邮电出版社
出版日期:2013-4
ISBN:9787115310088
作者:扎卡斯
页数:226页

既能让其基础打得更牢,也能让你更上一层楼!

无论你是在校学生还是前端工程师都不可不阅之书,无论是初学者还是很有经验开发工程师它既能让其基础打得更牢,也能让你更上一层楼!一部构建编码风格手册的经典著作,一部帮助开发团队从“游击队”走向“正规军”的伟大之作,一部错过为之后悔的最新力作!

可以当手册查一查

翻译的挺不错的,我是自己买纸质书的,虽然用了很少时间看完了,但是这本书对于刚刚入门js的童鞋还是不错的,对于规范代码和编写高质量的代码还是特别有建议。但是在生产实践中我还是喜欢用模块的的方式来管理代码,不过这本书里没有提及。是一个遗憾哟。

一些翻译和排版的问题

本书的第二部分是精华。倒没太多新东西,之前的《高性能JS》《JS高级程序设计》以及《JS模式》大部分都提到过,这里算是个总结。让人很不爽的一点是:原书中的“提示建议”,是以“爪印”图标和不同的样式跟正文区分开的;中文版中图标和样式都被干掉了,跟正文混在一起。奇怪的是:前言中“本书约定”里这些图标倒是还在。之前翻过英文版,因此没怎么仔细读。大致发现了一些翻译和排版的问题:p1 第一部分“程序是写给人读的,只是偶尔让计算机执行一下。”原文:“Programs are meant to be read by humans and only incidentally for computers to execute.”应该是:“程序是给人读的,顺带让计算机执行。”————————————————————————p1同上 有些人可能来自某个“皮包公司”,身兼数职,在公司里什么都做;原文:“Some may come from one-man shops where they could do whatever they wanted;”“one-man shops”翻译成“皮包公司”并不合适也算不上幽默;“ dowhatever they wanted”应该是指想怎么编码都可以,“身兼数职,什么都做”这个引申的过头了。——————————————————————————p2“毫无疑问,全球性的大公司都对外对内发布过编程风格文档。”原文:“It’s no wonder that large companies around the world have published style guidelines either internally or publicly.”“no wonder that”应该是“无怪乎,难怪”的意思。——————————————————————————p28开头那几行是注释,排版错误给弄成正文了。——————————————————————————p103最后一段第一句有个错字“恬当”,这个应该用是五笔打出来的。———————————————————————————p135“我相当乐意花一整天的时间通过编程把一个任务实现自动化,除非这个任务手动只需要10秒钟就能完成”原文:“I . . . am rarely happier than when spending an entire day programming my computer to perform automatically a task that would otherwise take me a good ten seconds to do by hand.”这个应该是搞反了,原文意思是说——手动花10秒我都愿意去自动化,而不是——手动只要10秒我就不去自动化了。

短而精的经典之作

麻雀虽小,却五脏俱全,这本书涵盖:编程风格(基本格式化、注释、语句和表达式、变量),编程实践(UI层松耦合、避免使用全局变量等等)第三部分自动化。第一部分比较基础,接触也比较多,经常培训新员工也会讲解代码规范的内容,代码规范虽然简单,但却十分重要。这部分由于熟悉也看得比较快。第二部分编程实践,属于很多知道,却不明白原理,看完这本书之后,仔细想想原理便对它“日久也弥新”了。比如UI松耦合为什么要抽离css,js,而且这里面也牵涉了一个概念“js模板”(将HTML从js中抽离),以前用过js模板,但没怎么发现它的好处,听了这本书的一些讲解觉得还是有道理的,道理就是方便调试,(ps这个道理看起来真站不住脚啊 ,哈哈哈)方法有三:从服务器加载、简单客户端模板(自己写个函数来实现页面标签的组装)、复杂客户端模板(使用js模板,如Handlebar等)。第一个问题:var name = "Nicholas"; alert(name.toUpperCase()); 尽管name是一个字符串,是原始类型不是对象,但你仍然可以使用诸如toUpperCase()之类的方法,即将字符串当做对象来对待。这种做法之所以行得通,是因为在这条语句背后js引擎创建了string类型的新实例,紧跟着就被销毁了,当再次需要时就会又创建另外一个对象。var name = new String("Nicholas"); name.author = true; alert(name.author);//truevar name = "Nicholas"; name.author = true; alert(name.author);//undefined在避免使用全局变量中,抛出概念:模块,其中又包含YUI模块和AMD模块。模块是一种通用的功能片段,它并没有创建新的全局变量或命名空间,相反,所有这些代码都存放于一个表示执行一个任务和发布一个接口的单函数中。可以用一个名称来表示这个模块,同样这个模块可以依赖其他模块。还有一种类型是零全局变量,jquery这些插件就是使用的这个立即执行的函数来实现零全局变量的。事件处理:业务逻辑和事件的处理分开比较:typeof 用来检测原始值:string number boolean undefined 最后一个原始值null 一般不用于检测。运行type null返回"object",这是一种抵消的判断null方法。如果需要检测null,则直接使用恒等运算符(===)或者非恒等(!==),检测引用值 Object、Array、Date、Error,typeof运算符显得力不从心,因为都返回“object”,使用instanceof 检测函数 typeof myFunc === “function”检测数组Object.prototype.toString.call(value) === "[object Array]"检测属性if("count" in object)如果是只想检查实例对象的某个属性是否存在,则使用hasOwnProperty()方法。将配置数据从代码中分离出来Props2Js工具读取Java属性文件,并给出三种格式的输出。抛出自定义错误的好处是可以区分出是浏览器本身的还是自己写的验证错误(感觉try catch错误自己用得很少啊 囧)浏览器嗅探避免浏览器推断,而应该用特性检测第三部分自动化文件合并加工、精简压缩、文档化、自动化测试等等最后决定咱们项目组使用CI持续集成哈哈哈,终于写完,看完这本书收益良多,对于如何改进js,提供了很多可以扩展的方向!

如中国足球一样粗糙的翻译

前几天同事刚推荐的这本“乌龟书”说是牛逼人物写的,大致翻了一遍,如中国足球一样粗糙的翻译是这本书中文版最大的败笔,翻译的太随便了,很多词不达意或不到位的地方,也不知道是译者英文水平的问题还是。。。

很好的javascript语言规范

Nicholas的每一本书都对得起深入浅出四个字,前面的语法部分可说是一气呵成,例释并举,让人印象深刻。后面的工具部分,稍微有点拖沓和杂乱,不过也指明了解决问题的实用方案。从页数和价格上看,有点小贵,不过还是值了。附录A是干货,可保留电子版随时备查。

野生JavaScript程序员必读

我是一个野生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数据。本书值得经常翻一翻,而且篇幅短小,是非常不错的床头技术书。

每个开发工程师和在校学生尽早阅读本书

“作者将他十多年工作经验的精华部分浓缩至这本通俗易读的书中。我建议每个开发工程师和在校学生尽早阅读本书。不管你有多少经验,本书中的每一页内容都会让你变得更加优秀且倍受大家欢迎。” ——Lea Verou,Web设计师兼Web开发人员

告诉你如何融入js开发团队

书分三部分。第一部分,制定了编码规范(附录一把这部分做了压缩)。第二部分,告诉你一些在团队中应该遵守的基本的编写代码的规则(或者说禁忌吧~)。第三部分,使用ant脚本来自动化生产,验证,压缩等环节(自己测试过发现作者写的代码有问题,譬如jshint参数应该放置到最后)。总结来说,是一本在上下班路上看的书,对于不太重视js或者根本没有js独立团队的公司,本书的作用不明显。

javascript的开发规范文档

zakas推荐给大家的一个javascript开发规范文档。从代码风格到一些开发技巧,如何避免一些糟糕的情况,到目录管理,还有持续集成部署。一本全面的规范类书籍!当然zakas也有讲到一些深层的知识,还有ECMAScript5的一些新api,要搞html5开发的朋友更需要看这本书。你能从里面学到一些自己忽略掉的东西,或者从里面学到一些新的技巧,虽然该书比较薄,但是最重要的是能学到真正有用的东西。假如团队里的开发人员都有看过这本书就好了…………………………………………………………………………………………………………………………………………………………………………………………………………………………

编码风格的一致性

只要是团队开发,每个人以相同的方式编写代码就是至关重要的。书中陈述了前端开发中编写javascript脚本一些常见的注意事项,对web开发人员和团队都有很大的参考价值。前端技术发展太快,各种新技术层出不穷,工具更新换代很快。我们需要理解程序开发本质原理,注意代码规范。最后引用本书开篇高纳德的一句话:“程序是写给人读的,只是偶尔让计算机之行以下”。

这本书,是一个非常不错的起点

“ 这是一本前端工程师的指南,指明了在编码过程需要注意的方方面面。提高可维护性是一个非常大的话题,而这本书,是一个非常不错的起点。” ——王保平(玉伯),支付宝Web前端工程师 “本书是一本教你写出具有前瞻性的JavaScirpt代码的完全手册,在团队作战中特别有用。” ——Ryan Grove,Yahoo! YUI工程师

让你写JS程序思路清晰

写程序最重要的是思路清晰。HTML+CSS+Javascript跟其他面向对象开发的语言区别很大,灵活 所以容易 凌乱本书第二部分讲了很多基本原则,实现解耦。看完本书,再看一些模块化开发的资料,就开始具备JS的内功。

呵呵

如此之薄的一本书,第一版次整本读下来,如果很细心的话你会发现有n多个错误,责任编辑,难道你是边打飞机边工作的么?我只能说这尼玛太没有职业道德了!这实在太符合国产的现状了!关于翻译,有兴趣的可以看看《编码的奥秘》,呵呵俩字已经代表我的态度!挣钱——>不择手段地挣钱——>移民——>摆脱这个没道德的国度——>哇嘎嘎!


 编写可维护的JavaScript下载 精选章节试读


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024