企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### 译者序 近年来,移动互联网的Web开发技术渐成显学。随着智能手机和平板电脑等移动终端的规模化普及,以及无线宽带网络覆盖率的大幅提高,对于移动互联网上Web应用的需求也必然变得愈加迫切。在这样的大背景下,Web标准化组织也在全力推进新的Web标准—HTML5。但是与此同时,随着设备和浏览器的多样化,以及新的Web标准的推行,对于Web开发人员,特别是以JavaScript为主要开发语言的开发者来说,一方面带来了新的市场机遇,另一方面也带来了前所未有的挑战。在这些挑战中,自然而然地包括下面这样的问题: * 如何面对未知的设备和浏览器来编写行为符合预期的JavaScript代码? * 如何重构已有的JavaScript代码,以适应新的运行环境? * 有哪些JavaScript特性是可以依靠的,即使Web标准可能发生一些变化? * 怎样在Web产品发布之前,就能够模拟大量用户使用的场景,找出可能存在的问题? * 有哪些新的JavaScript技术能够大大地改进前端和后端的通信效率? 从解答以上这些、甚至更多问题的视角来看,本书的出版可谓适逢其时。Christian在书中将JavaScript语言做了庖丁解牛式的剖析,相信即使是资深的JavaScript开发者,也一定可以找到大量闻所未闻的新内容。尤其是对闭包应用和原型继承的条分缕析,可以说是每一个想在JavaScript语言方面有所作为的开发者都必须掌握的,而这方面的资料在别处却难得一见。Christian还系统地介绍了最近才出现,但已经炙手可热的node.js服务器端JavaScript框架(你没有看错,的确是服务器端的JavaScript框架),不仅做了概念性的一般论述,更重要的是通过一个完整的项目来实地演示它的每一部分是怎样工作的。在阅读本书时,我们最深切的体会就是,Christian不喜欢说“凑字数”的话,而“那么,我们就来使用下面的代码来说明问题吧”这样的话在书中可谓俯拾皆是。所以,本书的的确确是心血之作,它绝对不是代码的堆砌,而是每一段代码精确地用来说明一个主题,而没有任何多余行。作者还煞费苦心地向读者提供了可以浏览所有代码变更的Git库,这样就更比书中的静态印刷形态能够说明重构的步骤。 当然,本书最大的也是最核心的价值,还在于它完整地展示了将测试驱动的开发方法学应用于JavaScript开发中去,这是一种全新的尝试。对于尚不熟悉这种软件开发方法的读者来说,通过阅读本书可以达到一举两得的功效。并且,本书的亮点在于不仅展示了测试可以驱动编写新的代码,而且可以驱动旧代码的重构,这将测试驱动的适用范围大大地扩展了。事实上,测试驱动的本质是通过用例验证来保证产品代码的正确性。通过认真地阅读本书,读者可以非常详尽地了解到,如何在Web开发的过程中构建这样的用例,以编写从单个函数,到功能模块,再到完整产品的正确代码。这些宝贵经验的分享,对于Web开发者的实际工作有着直接帮助的同时,也十分有益于良好的开发习惯的培养。 JavaScript正在日益变得更像一门C/C++那样的通用语言,它的设计中所蕴含的威力,直到最近才逐渐为人所知。特别是像jQuery这样的库出现以后,浏览器之间的差异几乎不复存在,而更多的精力则被放在用JavaScript来实现过去需要在服务器上编写大量的后端代码才能完成的工作。有一种说法,我个人认为很有道理,就是“JavaScript就是Web时代的汇编”。它正在以前所未有的速度取代服务器端用于页面生成的计算,而将大部分的计算量集中在业务逻辑和数据访问这些真正需要计算之处。掌握JavaScript语言,已经日渐成为所有Web开发的从业人员所必备的基本技能要求,那种“JavaScript仅仅是前端人员要学的东西,和后端人员无关”的想法,已经越来越落伍了。从现在就开始让自己多掌握一些JavaScript,无论之前是初学还是已经精通,本书都能够满足您的需求。 在本书翻译的过程中,芝加哥大学博士、成都电子科技大学云计算研究中心负责人赵勇同志、盛大创新院的程德同志、EMC中国软件开发工程师朱磊同志,以及自由软件开发者凌杰同志,都付出了巨大的心血。机械工业出版社华章公司的陈冀康编辑给了我们莫大的精神支持,使得本书的翻译和统稿工作得以顺利完成。在这里我需要特别感谢盛大创新院的郭忠祥院长为我们安排了多场以HTML5为主题的专题会议,使我们能有机会和知名的Web开发者领袖Jeremy Keith先生、W3C的HTML5工作小组组长Michael Smith先生,以及北京航空航天大学驻W3C顾问委员会代表李安琪女士等当面交流,也十分感谢盛大创新院前端团队的陈柏宇和周裕波同志,他们为我们解答了不少有关JavaScript的技术问题。本书成书之前,专注于node.js的cnodejs.org社区核心成员朱彤先生,以及上海交通大学软件学院的张尧弼教授都阅读了全稿,并给了我许多可贵的修正意见,在此一并致谢。当然,由于完成统稿工作的是我本人,所以全书的质量问题理应由我负责。我也想借此机会向在工作和生活上给了我莫大支持的父母和家人表达我内心最深处的敬意和谢意,希望本书的出版能给你们带来快乐。 高级研究员 2011年12月 于上海盛大集团总部