文章吧-经典好文章在线阅读:编写可维护的JavaScript读后感10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

编写可维护的JavaScript读后感10篇

2018-08-15 04:23:02 作者:文章吧 阅读:载入中…

编写可维护的Javascript读后感10篇

  《编写可维护的Javascript》是一本由扎卡斯著作人民邮电出版社出版的226图书,本书定价:55.00元,页数:2013-4,特精心网络整理的一些读者读后感希望大家能有帮助

  《编写可维护的Javascript》读后感(一):总结了js良好编程习惯指导

  书主要在三方面给读者写JS程序的指导,一是代码格式风格指导,二是代码的实现方式手段的指导,三是项目自动化管理的指导。

  有很多内容都是之前看过的了,所以花了几个小时时间过了一遍。总体上书的废话不多,如果以前没读过此类的指导书籍相信收获会不少。另外读这本书是需要一定的编程实践的,不然读完都没什么感觉。因为读过javascript高级程序设计,所以这本书只能说是那本书的转义精简版。不过有些提示还是蛮醍醐灌顶的。比如在何时抛出错误一节讲到:我们的目的不是防止错误,而是在错误发生时更容易地调试。第三部分的内容感觉使用技术年代蛮久远的所以就没有看。

  总的来说算是一本不错的书。

  《编写可维护的Javascript》读后感(二):告诉你如何融入js开发团队

  书分三部分。

  第一部分,制定了编码规范(附录一把这部分做了压缩)。

  第二部分,告诉你一些在团队中应该遵守的基本的编写代码的规则(或者说禁忌吧~)。

  第三部分,使用ant脚本来自动化生产验证,压缩等环节自己测试发现作者写的代码有问题,譬如jshint参数应该放置到最后)。

  总结来说,是一本在上下班路上看的书,对于不太重视js或者根本没有js独立团队的公司,本书的作用明显

  《编写可维护的Javascript》读后感(三):短而精的经典之作

  麻雀虽小,却五脏俱全,这本书涵盖:编程风格(基本格式化、注释、语句表达式、变量),编程实践(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");

  ame.author = true;

  alert(name.author);//true

  var name = "Nicholas";

  ame.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()方法。

  将配置数据从代码中分离出来

  rops2Js工具读取Java属性文件,并给出三种格式的输出。

  抛出自定义错误的好处是可以区分出是浏览器本身的还是自己写的验证错误(感觉try catch错误自己用得很少啊 囧)

  浏览器嗅探

  避免浏览器推断,而应该用特性检测

  第三部分自动化

  文件合并加工、精简压缩、文档化、自动化测试等等

  最后决定咱们项目组使用CI持续集

  哈哈哈,终于写完,看完这本书收益良多,对于如何改进js,提供了很多可以扩展的方向

  《编写可维护的Javascript》读后感(四):javascript的开发规范文档

  zakas推荐给大家的一个javascript开发规范文档。

  从代码风格到一些开发技巧,如何避免一些糟糕情况,到目录管理,还有持续集成部署

  一本全面的规范类书籍!

  当然zakas也有讲到一些深层的知识,还有ECMAscript5的一些新api,要搞html5开发的朋友更需要看这本书。

  你能从里面学到一些自己忽略掉的东西,或者从里面学到一些新的技巧,虽然该书比较薄,但是最重要的是能学到真正有用的东西。

  假如团队里的开发人员都有看过这本书就好了…………………………………………………………………………………………………………………………………………………………………………………………………………………………

  《编写可维护的Javascript》读后感(五):一些翻译和排版的问题

  本书的第二部分是精华。倒没太多新东西,之前的《高性能JS》《JS高级程序设计》以及《JS模式》大部分都提到过,这里算是个总结。

  让人很不爽的一点是:原书中的“提示建议”,是以“爪印”图标和不同样式正文区分开的;中文版中图标和样式都被干掉了,跟正文混在一起。奇怪的是:前言中“本书约定”里这些图标倒是还在。

  之前翻过英文版,因此没怎么仔细读。大致发现了一些翻译和排版的问题:

  1 第一部分

  “程序是写给人读的,只是偶尔让计算机执行一下。”

  原文

  “Programs are meant to be read by humans and only incidentally for computers to execute.”

  应该是:

  “程序是给人读的,顺带让计算机执行。”

  ————————————————————————

  1同上

  有些人可能来自某个“皮包公司”,身兼数职,在公司里什么都做;

  原文:

  “Some may come from one-man shops where they could do whatever they wanted;”

  “one-man shops”翻译成“皮包公司”并不合适也算不上幽默;“ do

  whatever they wanted”应该是指想怎么编码都可以,“身兼数职,什么都做”这个引申的过头了。

  ——————————————————————————

  2

  “毫无疑问全球性的大公司都对外对内发布过编程风格文档。”

  原文:

  “It’s no wonder that large companies around the world have published style guidelines either internally or publicly.”

  “no wonder that”应该是“无怪乎,难怪”的意思

  ——————————————————————————

  28

  开头那几行是注释,排版错误给弄成正文了。

  ——————————————————————————

  103

  最后一段第一句有个错字“恬当”,这个应该用是五笔打出来的。

  ———————————————————————————

  135

  “我相当乐意花一整天的时间通过编程把一个任务实现自动化,除非这个任务手动只需要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秒我就不去自动化了。

  《编写可维护的Javascript》读后感(六):野生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数据。

  本书值得经常翻一翻,而且篇幅短小,是非常不错的床头技术书。

评价:

[匿名评论]登录注册

评论加载中……