真・懒

订阅 Twitter GitHub 联系

通往终点的过程与终点本身同样重要

半年前,当我对 JavaScript 还停留在只认识这几个字母的时候,有一天我突然心血来潮,在网上下了 DOM Scripting样章,照着里面的例子写了我平生第一个能让我知所以然 JavaScript,在浏览器运行成功,兴奋不已,从此能把学习编程的热情持续半年以上,破了过去只能热一两个星期的记录,它带给我的影响不只是 JavaScript 本身,我同时已经初步入门了 Ruby on Rails

为什么之前我之前也拷贝粘贴过 JavaScript, 也曾试图学习过,但都无疾而终?除了这种 JavaScript 的经典学习方式不适合作为非程序员的我外,更重要的,网上或者市面上根本没有合适的教程,您所看到的大部分教程,除了让您一头雾水外,还可能把您引入岐途。随着 web 标准的发展,JavaScript 的开发方式已经发生了质的变化,急需一本结合 web 标准理念来教学 JavaScript 的入门教程来革新旧开发者的观念,引导初学者一开始就走在正确的路上,这方面,我想没有谁能够比领导 WaSP DOM Scripting Task Force 的 Jeremy Keith 更权威。

最近,由人民邮电引进出版的中文版 《JavaScript DOM 编程艺术》 终于面市,我第一时间购买了并阅读完毕,因此将我读后感发表出来与大家分享,如有什么高见,请留言不吝赐教,谢谢。

首先要说的本书的书名,原书名是: Dom Scripting: Web Design with JavaScript and the Document Object Method, 显而易见,本书是面向初学者的,而且对象比较明确,web 设计师, 并且表明了本书的内容主要就是 DOM, 因此想从本书里看到 JavaScript 奇技淫巧,想看到 Ajax 的高级应用什么的,肯定会大失所望。中文版的译名在我本人看来没能表达出原书名要表达的意思,当然基于市场考虑,加上「艺术」之流的字眼还是可以原谅的,最重要的,还是书本的内容质量。翻译来说,虽然有个术语比较别扭(如 hook 翻译成「挂钩」),但有些也相当精确(如 graceful degradation 翻译为「预留退路」)。比起 CSS Mastery 的翻译来,相当不错了。

为何面对设计师?(当然不是说不是设计师就不能看)当 web 标准越来越普及,使用 XHTML 和 CSS 来构建兼容标准的网页的设计师越来越多,接触了 web 标准的观念和大量使用 CSS 之后,对于 DOM 其实已经有了非常感性的认识,只需高人来点破即可迅速掌握 DOM 的基本操作,而在网页里,对 DOM 的操作,绝大部分是 JavaScript. 所以,我觉得,如果您现在已经了解 web 标准并积累有一定的项目经验,那么,这本书对您来说,阅读应该很轻松,即使,您没有任何的编程经验。所以,书中对于怎么入门编程,其实就只是简介一下 JavaScript 的语法,而也不会使用复杂的语句来构建例子程序,绝大部分只停留在 if, for 等简单的逻辑上。

至于书的内容,我觉得您直接去看网上提供的目录就可以一目了然。在我看来,它只不过就是获取 DOM 节点及其类型和值,如何改变 DOM 节点的类型和值,如何插入和删除 DOM 节点,如果您 CSS 基础好,那么您简直就是在看一本 CSS 书籍中的选择器介绍,只不过 DOM 更强大和灵活,并活起来罢了。并简要介绍了 JavaScript 的动画原理,让您明白,动的背后其实很简单,还提供了一个制作整站实例的过程,对于一些非设计师来说可以一窥网站诞生的流程。最后一章展望,其实就是入门书都提供的,就是对 JavaScript 的一些高级应用的概述,来吸引您继续学习的兴趣。不过连展望都不忘提醒贯穿整书的理念:

JavaScript 是用来充实网页而不是构建网页的,并基于 web 标准的结构,表现,行为分离原则。任何时候不要忘了无障碍,网页的核心内容在 JavaScript 缺席的时候不能受影响。

确实,这是本不折不扣的入门书,对于初学者更合适。但是,是不是说对于老鸟就不适合了呢?非也,前面已经提到,尽管本书的技术浅显,但始终贯穿书本的开发理念与原则,或许是作为老鸟的您从来没有听过或者一知半解的,我建议您可以把它当作一本小说来看,不必像初学者一样拘泥于技术细节。为何这么说?

Ajax 引爆 JavaScript 的流行,流行展望当今 JavaScript,大量框架的涌现,您已经可以不费吹灰之力迅速搭建一个 JavaScript 应用,这样让大家的应用看起来都一样,最终结果看起来似乎都一样:解决了问题。但是您有否想过,这相同结果可能在只有 JavaScript 的时候?您是否想过能在禁止 JavaScript 的情况下,人家的能用您的不能用?为何?书本不会直接给您答案,但我相信您能间接找到。没错,该刷新您的开发观念了。而且书不厚,您只需花一个下午。

通往终点的过程与终点本身同样重要。

如果非要找点瑕疵,那么就是,本书作者作为 WaSP 的成员,在里面的例子中竟然同时使用两次 h1,有违 W3C h1 每页只出现一次的建议。另外,翻译中把 “you” 翻译成「你们」,让人感觉作者高高在上的样子,还不如翻译成「您」或「你」来得亲切。