编写可维护的JavaScript
Nicholas C. Zakas
李晶, 郭凯, 张散集 译
出版时间:2013年02月
页数:226
“本书是一本教你写出具有前瞻性的JavaScirpt代码的完全手册,在团队作战中特别有用。”
——Ryan Grove,Yahoo! YUI工程师
“作者将他十多年工作经验的精华部分浓缩至这本通俗易读的书中。我建议每个开发工程师和在校学生尽早阅读本书。不管你有多少经验,本书中的每一页内容都会让你变得更加优秀且倍受大家欢迎。”
——Lea Verou,Web设计师兼Web开发人员
“这是一本前端工程师的指南,指明了在编码过程中需要注意的方方面面。提高可维护性是一个非常大的话题,而这本书,是一个非常不错的起点。”
——王保平(玉伯),支付宝Web前端工程师
每个人都有固定的一套编码习惯,但在团队协作过程中,则需要每个人都遵守统一的编码约定和编程方法。本书介绍如何在团队协作中保持高效的编码,书中的最佳实践包括代码风格、编程技巧以及自动化。你将学到如何写出具有高可维护性的代码,以便团队任何人都可以轻松地理解、修改或扩展你的代码。
本书作者是大名鼎鼎的Nicholas C. Zakas。他是Yahoo!的首席前端开发工程师。在完成了从一名“独行侠”到“团队精英”的蜕变后,他站在前端工程师的角度,提炼出了众多的最佳编程实践,其中包括很多其他业内权威所推崇的最佳法则。应用这些技巧和技术,你的团队编程可以从狭义的个人偏好的阴霾中走出来,走向真正的高效能和高水准。
本书包括以下内容:
· 为团队开发建立特定的编程约定;
· 使用工具(如JSLint和JSHint)让团队开发走向正轨;
· 构建编码风格手册(如基本的格式化),帮助开发团队从“游击队”走向“正规军”;
· 应用编程实践来解决常见问题,提高编码质量;
· 使用多种工具创建JavaScript自动化构建系统;
· 使用诸如YUI Test Selenium引擎等工具来集成基于浏览器的JavaScript测试。
  1. 第一部分 编程风格
  2. 第1章 基本的格式化
  3. 1.1 缩进层级
  4. 1.2 语句结尾
  5. 1.3 行的长度
  6. 1.4 换行
  7. 1.5 空行
  8. 1.6 命名
  9. 1.6.1 变量和函数
  10. 1.6.2 常量
  11. 1.6.3 构造函数
  12. 1.7 直接量
  13. 1.7.1 字符串
  14. 1.7.2 数字
  15. 1.7.3 null
  16. 1.7.4 undefined
  17. 1.7.5 对象直接量
  18. 1.7.6 数组直接量
  19. 第2章 注释
  20. .2.1 单行注释
  21. 2.2 多行注释
  22. 2.3 使用注释
  23. 2.3.1 难于理解的代码
  24. 2.3.2 可能被误认为错误的代码
  25. 2.3.3 浏览器特性hack
  26. 2.4 文档注释
  27. 第3章 语句和表达式
  28. 3.1 花括号的对齐方式
  29. 3.2 块语句间隔
  30. 3.3 switch语句
  31. 3.3.1 缩进
  32. 3.3.2 case语句的“连续执行”
  33. 3.3.3 default
  34. 3.4 with语句
  35. 3.5 for循环
  36. 3.6 for-in循环
  37. 第4章 变量、函数和运算符
  38. 4.1 变量声明
  39. 4.2 函数声明
  40. 4.3 函数调用间隔
  41. 4.4 立即调用的函数
  42. 4.5 严格模式
  43. 4.6 相等
  44. 4.6.1 eval()
  45. 4.6.2 原始包装类型
  46. 第二部分 编程实践
  47. 第5章 ui层的松耦合
  48. 5.1 什么是松耦合
  49. 5.2 将javascript从css中抽离
  50. 5.3 将css从javascript中抽离
  51. 5.4 将javascript从html中抽离
  52. 5.5 将html从javascript中抽离
  53. 5.5.1 方法1:从服务器加载
  54. 5.5.2 方法2:简单客户端模板
  55. 5.5.3 方法3:复杂客户端模板
  56. 第6章 避免使用全局变量
  57. 6.1 全局变量带来的问题
  58. 6.1.1 命名冲突
  59. 6.1.2 代码的脆弱性
  60. 6.1.3 难以测试
  61. 6.2 意外的全局变量
  62. 避免意外的全局变量
  63. 6.3 单全局变量方式
  64. 6.3.1 命名空间
  65. 6.3.2 模块
  66. 6.4 零全局变量
  67. 第7章 事件处理
  68. 7.1 典型用法
  69. 7.2 规则1:隔离应用逻辑
  70. 7.3 规则2:不要分发事件对象
  71. 第8章 避免“空比较”
  72. 8.1 检测原始值
  73. 8.2 检测引用值
  74. 8.2.1 检测函数
  75. 8.2.2 检测数组
  76. 8.3 检测属性
  77. 第9章 将配置数据从代码中分离出来
  78. 9.1 什么是配置数据
  79. 9.2 抽离配置数据
  80. 9.3 保存配置数据
  81. 第10章 抛出自定义错误
  82. 10.1 错误的本质
  83. 10.2 在javascript中抛出错误
  84. 10.3 抛出错误的好处
  85. 10.4 何时抛出错误
  86. 10.5 try-catch语句
  87. 10.6 错误类型
  88. 第11章 不是你的对象不要动
  89. 11.1 什么是你的
  90. 11.2 原则
  91. 11.2.1 不覆盖方法
  92. 11.2.2 不新增方法
  93. 11.2.3 不删除方法
  94. 11.3 更好的途径
  95. 11.3.1 基于对象的继承
  96. 11.3.2 基于类型的继承
  97. 11.3.3 门面模式
  98. 11.4 关于polyfill的注解
  99. 11.5 阻止修改
  100. 第12章 浏览器嗅探
  101. 12.1 user-agent检测
  102. 12.2 特性检测
  103. 12.3 避免特性推断
  104. 12.4 避免浏览器推断
  105. 12.5 应当如何取舍
  106. 第三部分 自动化
  107. 第13章 文件和目录结构
  108. 13.1 最佳实践
  109. 13.2 基本结构
  110. 第14章 ant
  111. 14.1 安装
  112. 14.2 配置文件
  113. 14.3 执行构建
  114. 14.4 目标操作的依赖
  115. 14.5 属性
  116. 14.6 buildr项目
  117. 第15章 校验
  118. 15.1 查找文件
  119. 15.2 任务
  120. 15.3 增强的目标操作
  121. 15.4 其他方面的改进
  122. 15.5 buildr任务
  123. 第16章 文件合并和加工
  124. 16.1 任务
  125. 16.2 行尾结束符
  126. 16.3 文件头和文件尾
  127. 16.4 加工文件
  128. 第17章 文件精简和压缩
  129. 17.1 文件精简
  130. 17.1.1 使用yui compressor精简代码
  131. 17.1.2 用closure compiler精简
  132. 17.1.3 使用uglifyjs精简
  133. 17.2 压缩
  134. 17.2.1 运行时压缩
  135. 17.2.2 构建时压缩
  136. 第18章 文档化
  137. 18.1 jsdoc toolkit
  138. 18.2 yui doc
  139. 第19章 自动化测试
  140. 19.1 yui test selenium引擎
  141. 19.1.1 配置一台selenium服务器
  142. 19.1.2 配置yui test selenium引擎
  143. 19.1.3 使用yui test selenium引擎
  144. 19.1.4 ant的配置写法
  145. 19.2 yeti
  146. 19.3 phantomjs
  147. 19.3.1 安装及使用
  148. 19.3.2 ant的配置写法
  149. 19.4 jstestdriver
  150. 19.4.1 安装及使用
  151. 19.4.2 ant的配置写法
  152. 第20章 组装到一起
  153. 20.1 被忽略的细节
  154. 20.2 编制打包计划
  155. 20.2.1 开发版本的构建
  156. 20.2.2 集成版本的构建
  157. 20.2.3 发布版本的构建
  158. 20.3 使用ci系统
  159. 20.3.1 jenkins
  160. 20.3.2 其他ci系统
  161. 附录a javascript编码风格指南
  162. 附录b javascript工具集
书名:编写可维护的JavaScript
作者:Nicholas C. Zakas
译者:李晶, 郭凯, 张散集 译
国内出版社:人民邮电出版社
出版时间:2013年02月
页数:226
书号:978-7-115-31008-8
原版书书名:Maintainable JavaScript
原版书出版商:O'Reilly Media
Nicholas C. Zakas
 
Nicholas C. Zakas是一名前端开发顾问、作者、演讲家。他在Yahoo!供职超过5年时间。在这期间,他曾是Yahoo!首页首席前端工程师和YUI代码贡献者。他著有《JavaScript高级程序设计》、《Ajax高级程序设计》和《高性能JavaScript》。他的博客地址是:http://www.nczonline.net/。他的Twitter是:@slicknet。