标签
内容简介
《编写可维护的JavaScript》是《JavaScript高级程序设计》作者尼古拉斯·C. 扎卡斯(Nicholas C. Zakas)的代表作之一,原书由 O'Reilly Media 于2012年出版,中文版由淘宝UED团队的李晶、郭凯、张散集翻译,人民邮电出版社2013年4月推出。 作者在 Yahoo! 担任首席前端工程师五余年,从“单打独斗”的黑客式编程走向大型团队协作,本书正是他对这段经历的提炼:在一个多人协作的前端项目里,代码的可读性往往比技巧的巧妙程度更重要,一致性比个人偏好更重要。 全书分为三大部分。第一部分“编程风格”从最基本的格式化讲起,逐项讨论缩进、语句结尾、行长度、换行、空行、命名、直接量写法,进而覆盖注释的使用时机与文档注释、语句与表达式(花括号对齐、switch、with、for 与 for-in)、变量与函数声明、严格模式、相等运算符与 eval 等细节。第二部分“编程实践”进入架构层面:UI 层松耦合(不让 CSS 混入 JavaScript、不让 HTML 写死在脚本里)、避免全局变量(单全局对象、命名空间、模块、AMD)、事件处理的两条原则、避免与 null 比较、把配置数据从代码中分离、主动抛出错误、不修改不属于自己的对象、用特性检测代替浏览器检测。第三部分“自动化”围绕构建展开:文件与目录结构、Ant 构建脚本、代码校验、合并与“烘焙”、压缩与 gzip、文档生成以及自动化测试(YUI Test、Selenium、PhantomJS、JsTestDriver 等),最后演示如何把零散的环节组装成开发构建、集成构建与发布构建,并接入持续集成服务器。 中文版约226页,全书示例密实、条目清晰,更像一本可以直接落地使用的规范手册与工程实践指南。
编辑推荐
很多 JavaScript 学习者能写出跑得起来的代码,却写不出别人愿意接手的代码。本书解决的正是这件事:它不教你新语法,而是教你如何在团队中把代码写“整齐”。 作者扎卡斯是《JavaScript高级程序设计》的作者,在 Yahoo! 带过大型前端项目,书中每一条规则几乎都来自真实项目的教训。它的结构非常务实:编程风格部分细到缩进几级、逗号放哪、什么时候该写注释,读起来像一份逐条解释理由的团队规范;编程实践部分则提高了层次,涉及 UI 松耦合、全局变量治理、配置数据外置、自定义错误、不改他人对象、特性检测等至今仍被反复引用的原则;自动化部分手把手讲代码校验、合并、压缩、文档与自动化测试,并演示如何拼装成一套可运行的构建流程。 需要说明的是,自动化部分的具体工具(Ant、YUI Compressor、YUI Test、PhantomJS 等)在今天多已被 ESLint、打包器和现代测试框架取代,读这部分时应关注“为什么需要这一步”,而非照搬当年工具。中文版由淘宝UED团队翻译,术语准确、行文顺畅。对于想从“能写”跨到“能协作、可交付”的前端开发者,这仍是一本值得放在手边翻查的方法论书籍。
适合谁读
适合
- 已有一定 JavaScript 基础、开始参与多人协作项目的前端开发者
- 需要为团队制定或更新编码规范、代码评审清单的前端负责人
- 刚进入职场、想快速摸清工程化与代码质量门槛的初级工程师
- 带实习生或做技术培训、需要一份讲得清“为什么”的教材的讲师
不适合
- 完全零基础、尚未写过完整 JavaScript 程序的入门读者
- 主要想学框架用法或最新语法特性的读者,本书几乎不涉及这类内容
- 期待拿到可直接套用的现代构建脚本的读者,书中工具链已明显过时
阅读建议
- 把本书当规范手册用:先通读第一部分,再在评审或重构时按条目回查,不必一次读完。
- 读编程实践部分时,打开自己项目里最乱的那个文件,边读边做对照修改,收效最直接。
- 自动化部分重点理解流程与目的,工具选型换成 ESLint、Prettier、打包器和现行测试框架即可。
- 团队共读时建议每周过一章,把书中条目剪裁成本团队的编码规范并落到评审清单里。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第一部分 编程风格
- 第1章 基本的格式化
- 第2章 注释
- 第3章 语句和表达式
- 第4章 变量、函数和运算符
- 第二部分 编程实践
- 第5章 UI层的松耦合
- 第6章 避免使用全局变量
- 第7章 事件处理
- 第8章 避免“空比较”
- 第9章 将配置数据从代码中分离
- 第10章 抛出自定义错误
- 第11章 不是自己的对象不要修改
- 第12章 浏览器检测
- 第三部分 自动化
- 第13章 文件和目录结构
- 第14章 Ant
- 第15章 校验
- 第16章 文件合并和加工
- 第17章 文件精简和压缩
- 第18章 文档化
- 第19章 自动化测试
- 第20章 组装到一起
- 附录A JavaScript编码风格指南
- 附录B JavaScript工具集
常见问题
这本书和《JavaScript高级程序设计》是同一作者吗?
是。两者作者都是尼古拉斯·C. 扎卡斯(Nicholas C. Zakas)。《JavaScript高级程序设计》讲语言本身,本书讲的则是团队协作中如何组织、规范和自动化 JavaScript 代码,定位完全不同,可以互补阅读。
2013年出版的书,现在读还不过时吗?
前半部分关于风格、注释、松耦合、全局变量、错误处理、特性检测的原则基本不过时;第三部分的 Ant、YUI Compressor、PhantomJS 等具体工具已基本退出主流,建议把这一部分当作“为什么要做自动化”的入门思路来读。
中文版是谁翻译的,质量如何?
中文版由李晶、郭凯、张散集翻译,属淘宝UED团队组织,是国内较早有前端团队参与译校的技术书之一,术语处理较为一致,翻译质量常被读者提及为优点。
需要先精通 JavaScript 再读吗?
不需要精通,但要能独立写出包含函数、对象、事件处理的完整脚本。书中大量示例涉及回调、闭包与模块模式,完全没有基础会读得吃力,建议先完成一门入门课再读。
书的篇幅大吗,多久能读完?
中文版约226页,正文20章加两个附录。通读大约需要一周到两周的碎片时间;如果只读第一、二部分(前12章),三四个晚上即可完成,这也是多数读者建议的读法。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。