首页>参考读物>计算机科学与技术>软件与程序设计

CoffeeScript应用开发
作者 : (美)Ian Young 著
译者 : 杜卿 陈健 译
丛书名 : Web开发技术丛书
出版日期 : 2014-06-30
ISBN : 978-7-111-46805-9
定价 : 49.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 204
开本 : 16
原书名 : CoffeeScript Application Development
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书系统介绍CoffeeScript开发基础和实践,包括CoffeeScript语法,以及怎样将它编译为JavaScript,构建和改进CoffeScript程序、类、重构、异步操作、调试,以及在服务器中使用Coffeescript等。

图书特色

本书以简洁、清晰、循序渐进的叙述方式,全面而系统地讲解CoffeeScript的基本语法、强大功能和实际应用开发技巧,并通过一个有趣的应用项目实例(构建小型宠物商店网络应用)的完整开发过程,深入剖析CoffeeScript的强大功能,详细讲解CoffeScript应用开发、重构、调试的方法和技巧,是学习并掌握CoffeeScript语言的最佳实践指南。

本书共11章,首先用丰富的图例详细说明CoffeeScript应用开发和运行环境的安装步骤,讲解CoffeeScript语言的基本语法,包括变量和语句、函数调用、控制结构、运算符、数组和简单对象知识等;然后通过宠物商店网络应用开发之旅,引领读者学习CoffeeScript语言的高级开发技巧,包括空值处理、一次给多个变量赋值、高级函数参数、类的使用、异步调用等;最后,详细介绍调试工具的使用方法,以及更多可以集成CoffeeScript的开发环境。

如果你是JavaScript开发者,你想节省更多的编码时间,并给代码增加更多强大的功能,那么本书可以帮助你。通过本书,你将以最小的代价学会一整套新的语言,帮助你减少应用开发时间。通过阅读本书,你将学到:
在各种环境下编写CoffeeScript代码,并将其编译成在各处均能运行的JavaScript代码
探索新的技术,管理复杂的代码库和不断变化的需求
在CoffeeScript整洁、强大的语法中弃用分号
构建循环、if语句和函数,尽可能减少额外的输入
用类和继承,保持代码的整洁和有组织性
使用高级的CoffeeScript习惯用法来解决快速增长的应用需要
用源映射来高效调试
将CoffeeScript与Rails、Brunch及其他Web框架项目无缝集成
在Node.js的服务器端软件中使用CoffeeScript

作者简介
Ian Young?毕业于格林内尔学院,并获得计算机科学专业学位,之后在一家技术公司从事Web开发工作。他热爱Web技术、小团队、快速迭代、测试、奇思妙想、自由演讲,以及能够减少认知负荷的所有工具。
译者简介
杜卿?华南理工大学软件学院教师,主要从事数据挖掘、社交网络及推荐系统方面的研究工作。
陈健?华南理工大学教授、博士导师,中国计算机学会数据库专业委员会委员,广东省计算机学会数据库分会理事,广东省计算机学会计算智能专业委员会委员,广东省“千百十工程”人选。此外,还是国内外多个著名期刊的审稿人和会议程序委员会委员。主要从事数据库、数据挖掘、个性化推荐方面的研究。

图书前言

如果你在从事网络开发工作,你肯定至少听说过CoffeeScript。尽管这种小型的开发语言诞生还不到5年,但它已经获得了众多关注,并越来越难以忽视。也许你已经使用过它,也许你只是想知道它有什么特别的。告诉你一个好消息!  CoffeeScript是一种令人愉快的开发语言,可以帮助你写出更好的代码,并乐在其中。在本书中,我们将探讨语言本身,并找出它如何帮助我们构建漂亮的Web应用。
CoffeeScript是什么
  CoffeeScript是一种编程语言。像大部分的编程语言一样,它提供控制结构用来描述应用逻辑,提供简单数据类型用来存储和操作信息,提供函数用来将程序执行封装成段。
  CoffeeScript的特殊之处是它的编译方式。大多数语言编译后被翻译成机器代码(machine code)—计算机处理器能够处理的低级别指令,而CoffeeScript在编译后被翻译成JavaScript代码。我们写好CoffeeScript源代码,将其提供给CoffeeScript编译器,得到的输出是JavaScript代码。然后,这些输出代码可以在任何支持JavaScript的环境中使用,如浏览器或独立的JavaScript解释器。
  这种技术称为transcompilation,它允许我们在仅支持JavaScript的平台上使用替代的语言。客户端Web开发是最突出的例子,因为JavaScript是大部分Web浏览器上支持的唯一脚本框架语言。其他平台,如Node.js和Rhino,虽然也提供了优越的功能,但需要以JavaScript语言作为输入。JavaScript以丰富的产品支持为特点,而CoffeeScript让我们通过另一种语言编码也可以享受JavaScript的便利。
为什么选择CoffeeScript
  CoffeeScript当然不是第一门(也不会是最后一门)针对JavaScript平台设计开发的语言。许多老牌的语言,如Ruby、Python、C和Java,都有一个或多个项目专注于将自身语言编写的代码编译为JavaScript代码。另外还有一些已经开发出来的专门针对JavaScript的语言,其中比较突出的有Dart、TypeScript和Coco。
  CoffeeScript wiki上有一个庞大的、编译为JavaScript的其他语言列表。你可以在以下网址获得此列表:https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS。
  尽管CoffeeScript不是唯一可以编译为JavaScript的语言,但它无疑已经成为其中最成功的。在GitHub上,它排在最流行语言的第十名。默认情况下,它搭载在Ruby on Rails上,在客户端和服务器端的开发者社区都有大量的追随者。
  是什么使得CoffeeScript如此特别?就像金发姑娘和她偷喝的粥一样,CoffeeScript的力量源于其恰到好处。它的语法与JavaScript相比有显著改善,本书大部分内容都将介绍CoffeeScript怎样帮助我们编写更简洁、更易于阅读而且不容易产生错误的代码。不过,CoffeeScript在功能上没有太多超越。CoffeeScript中没有运行时,没有额外的元数据跟踪,没有额外的内存管理,也没有非标准的数据结构。相反, CoffeeScript直接编译为平常的JavaScript,就像是一个经验丰富的JavaScript开发人员所写的一样。事实上,与其说CoffeeScript是一种新语言,不如说它是更容易表达的JavaScript最佳实践的简写。
  CoffeeScript是一种非常务实的语言,这是它成功的秘密。JavaScript开发人员可以很容易学习它,而且大多数专业知识可以直接使用。CoffeeScript带来的性能损失不会超过普通的JavaScript,它可以与JavaScript和平共处,所以将CoffeeScript引入现有的JavaScript项目也容易。也许最重要的是,CoffeeScript避免了因为开发者的假设和语言设计者的假设不匹配而经常引起的那些“神奇”的错误来源。有了CoffeeScript,很容易知道JavaScript将做什么,将如何做。这也让CoffeeScript非常有趣。
本书主要内容
  第1章 包括安装CoffeeScript工具,并分别在控制台和Web浏览器中运行一个简单的CoffeeScript程序。
  第2章 将探索CoffeeScript的语法,以及怎样将它编译为JavaScript。
  第3章 我们将构建一个互动的Web应用程序,并从中学习CoffeeScript的功能。
  第4章 为我们的Web应用程序添加更多的功能,并探索更强大的CoffeeScript语法。
  第5章 介绍CoffeeScript所有类的知识,包括如何使用它们,它们是如何工作的,以及如何将类集成到流行的JavaScript框架中。
  第6章 我们会用从第5章中学到的新技能重构我们的Web应用程序,使用基于类的结构。
  第7章 我们将学习CoffeeScript高级功能和减少错误的惯用法,从而使我们的代码更容易理解,我们将用它们来为我们的Web应用程序增加更多的功能。
  第8章 讲述CoffeeScript怎样帮助我们处理异步操作,并将第三方JavaScript库整合到CoffeeScript应用程序中。
  第9章 我们将学习如何使用源映射,在所有返回CoffeeScript源的路径中追踪应用程序中的问题。
  第10章 将涵盖如何将CoffeeScript的编译集成到几种流行的Web应用框架中。
  第11章 我们将在Node.js的服务器上运行CoffeeScript,并学习如何将其集成到标准的JavaScript Node模块中。
阅读前的准备
  阅读本书你需要准备一个文本编辑器和一个可工作的CoffeeScript编译器。不用担心编译器,我们在第1章中将介绍这个工具的安装和使用。书中分别提供了Windows、Mac OS X和Linux系统中使用工具的说明。本书中有很多关于客户端Web应用的内容,如果你有任何喜欢的开发工具也可以沿用。你还需要一个现代的浏览器,理想的选择是最新版本的Firefox或Chrome,但所有其他最新的浏览器,如Safari、Opera或最新版的Internet Explorer都可以正常工作。
本书读者对象
  熟悉JavaScript语言将有助于学习相近似的CoffeeScript,有助于了解编译器的输出是做什么的;有一些客户端Web应用程序的开发经验也非常有用,但不是必需的。我们将大量使用CoffeeScript,再加上一点HTML和CSS,来构建一个Web应用程序。
  没有CoffeeScript经验也没关系。我们会照顾到每个人,从新手到已经有些CoffeeScript知识,希望更好地掌握和最好地利用这种语言的人。
勘误表
  虽然我们已尽力确保本书内容的准确性,但错误还是难以避免。当你发现本书中的错误,也许是正文也许是代码,如果你能将此情况报告给我们,我们将不胜感激。这样做,你可以减少其他读者可能遇到的挫折,并帮助我们改善本书的后续版本。如果你发现任何错误,请访问http://www.packtpub.com/submit-errata,选择你的书,点击errata submission form链接,输入勘误细节。一旦确认了你的勘误是对的,我们将接受你提交的信息,并上传到网站,或添加至本书勘误部分,更新勘误表。可以在http://www.packtpub.com/support选择书名查看所有已核实的勘误。
致谢
  感谢Katherine忍受我愚蠢的样子。
  感谢审稿和编辑找到书稿中的错误。
  书中我最喜欢的部分——照片,来自于
  Steve Jurvetson (https://flickr.com/photos/jurvetson/2229899)
  Rosalia Wilhelm (https://commons.wikimedia.org/wiki/File:Widderkaninchen.JPG)
  如果没有下面这些开源软件,本书无法完成:
  Jeremy Ashkenas, CoffeeScript (http://coffeescript.org/)
  Ryan Dahl, Node (http://nodejs.org/)
  Isaac Z. Schlueter, npm (https://github.com/isaacs/npm)
  Dustin Diaz, reqwest (https://github.com/ded/reqwest)
  Tilde, Inc., RSVP.js (https://github.com/tildeio/rsvp.js)
  David Heinemeier Hansson, Rails (http://rubyonrails.org/)
  Brunch team, Brunch (http://brunch.io/)
  TJ Holowaychuk, Express (http://expressjs.com/)
  Andrew Dunkman, connect-assets (https://github.com/adunkman/connect-assets)

上架指导

计算机\程序设计

封底文字

CoffeeScript是针对JavaScript平台设计开发的一种编程语言,其语法简洁,易于掌握,可以有效弥补JavaScript的不足。CoffeeScript让我们既享受优雅的的语法和强大的功能,也能享受JavaScript编程的乐趣。
本书通过引领你创建Web应用程序实例,帮助你深入学习CoffeeScript语言。通过实例开发的方法,你将了解CoffeeScript提供的所有强大的功能,并学习如何使用它们解决实际问题。

如果你是JavaScript开发者,你想节省更多的编码时间,并给代码增加更多强大的功能,那么本书可以帮助你。通过本书,你将以最小的代价学会一整套新的语言,帮助你减少几周到数天的应用开发时间。通过本书,你将学到:


? 在各种环境编写CoffeeScript,并将其编译成在各处均能运行的JavaScript
? 探索新的技术,管理复杂的代码库和不断变化的需求
? 在CoffeeScript整洁、强大的语法中弃用分号
? 构建循环、if语句和函数,尽可能减少额外的输入
? 用类和继承,保持代码的整洁和有组织性
? 使用高级的CoffeeScript习惯用法来解决快速增长的应用需要
? 用源映射来高效调试
? 将CoffeeScript与Rails、Brunch及其他Web框架项目无缝集成
? 在Node.js的服务器端软件中使用CoffeeScript

作者简介

(美)Ian Young 著:暂无简介

译者简介

杜卿 陈健 译:暂无简介

译者序

本书是CoffeeScript语言的教程,更是使用CoffeeScript开发应用的实践攻略。作为一本语言教程,本书以简洁、清晰、循序渐进的叙述方式,帮助读者深入理解CoffeeScript语言,学习并掌握这种使开发更便捷、更高效的编程工具。作为一本实践攻略,本书给读者提供了一个饶有趣味的应用项目—为一个小型宠物商店创建网络应用,围绕这个应用的开发、完善、升级重构等,宠物商店一直伴随着读者学习实践的全过程。
  本书首先用丰富的图例详细说明了CoffeeScript应用开发和运行环境的安装步骤,讲解了CoffeeScript语言的基本语法,包括变量和语句、函数调用、控制结构、运算符、数组和简单对象等知识,其次用宠物商店网络应用开发之旅带出CoffeeScript语言的高级开发技巧,包括空值处理、一次给多个变量赋值、高级函数参数、类的使用、异步调用等。最后,书中还介绍了调试工具的使用方法,以及可以集成CoffeeScript的更多开发环境。为了让读者更好地掌握调试与问题处理的方法,作者在前面章节编写应用项目代码的时候,刻意留下一个“bug”等待读者去捕获。当读者合上本书时,仿佛已亲身经历了一个CoffeeScript的项目开发。
  本书的读者群主要是从事网络应用开发编程的专业人员,以及广大CoffeeScript编程语言爱好者。从本书的叙述编排、语言表述风格等角度看,作者不仅希望能通过这本书,让更多读者掌握这门编程语言,更希望通过一些应用,为读者在学习和工作中享受编程带来的愉悦、便捷体验,提供一条更简明、易行的道路。正如本书结尾部分所述,“我们的工作到这里就结束了,但你的CoffeeScript冒险之旅才刚刚开始。”
  在翻译过程中,译者遇到了各种各样的挑战,有些专业词汇并没有公认的中文翻译标准,到底是遵照原文,还是选择一个中文词语进行替换,我们都会反复斟酌。此外,我们还查询了大量相关资料,访问相关论坛,力求做到术语翻译准确,意译部分既符合中文表达习惯又不失原著意境。但译者水平终究有限,书中疏漏在所难免,敬请读者批评指正。如果有任何问题和建议,欢迎联系我们(duqing@scut.edu.cn),期待与大家的交流与探讨,让我们共同学习并成为朋友。最后,感谢出版社的信任,感谢同事、朋友、家人的支持和帮助。谢谢你们!

图书目录

译者序
前 言
第1章 运行CoffeeScript程序1
1.1 安装Node.js1
1.1.1 在OS X上安装Node.js2
1.1.2 在Windows上安装Node.js3
1.2 使用安装程序3
1.2.1 使用独立的可执行文件4
1.2.2 使用Chocolatey5
1.2.3 在Linux上安装Node.js5
1.2.4 手动编译Node.js7
1.2.5 跳过Node安装步骤8
1.3 测试Node安装8
1.4 安装CoffeeScript9
1.5 第一段CoffeeScript代码10
1.6 编译CoffeeScript文件10
1.7 支持CoffeeScript的编辑器11
1.7.1 TextMate支持11
1.7.2 Sublime Text 2支持11
1.7.3 Vim支持12
1.7.4 Emacs支持12
1.8 开始开发Web应用程序12
1.9 小结14
第2章 编写第一个CoffeeScript程序15
2.1 跟着示例做15
2.2 CoffeeScript基础16
2.2.1 语句16
2.2.2 变量17
2.2.3 注释17
2.3 函数调用18
2.4 控制结构20
2.4.1 if语句20
2.4.2 else和else if语句22
2.4.3 unless语句22
2.4.4 单行形式23
2.5 比较运算符23
2.6 数组25
2.6.1 数列26
2.6.2 循环27
2.6.3 判断数组成员30
2.7 简单对象31
2.8 小结33
第3章 构建简单的应用程序34
3.1 构建应用程序34
3.2 字符串插值38
3.3 定义函数40
3.3.1 函数命名41
3.3.2 函数返回41
3.4 在应用程序中增加动态特性44
3.5 Switch语句48
3.6 小结51
第4章 改进应用程序52
4.1 检查值是否存在52
4.1.1 使用存在运算符53
4.1.2 空值在链式调用中54
4.1.3 以空值为条件,赋新值55
4.1.4 在宠物应用程序中处理空值56
4.2 一次给多个变量赋值59
4.3 高级函数参数62
4.3.1 默认参数值63
4.3.2 接受可变数目参数的splat67
4.4 小结72
第5章 CoffeeScript的类73
5.1 在CoffeeScript中定义类73
5.1.1 给类绑定方法74
5.1.2 CoffeeScript如何构建JavaScript的类75
5.1.3 保持对象属性状态76
5.1.4 在对象中调用其他方法76
5.1.5 在类定义的外面绑定方法77
5.2 构造函数78
5.3 类的静态方法调用80
5.4 继承82
5.5 在CoffeeScript中使用其他类库85
5.5.1 CoffeeScript的Backbone类86
5.5.2 CoffeeScript的Ember类87
5.6 小结88
第6章 用类重构89
6.1 重构周期89
6.2 用类结构化数据90
6.2.1 添加业务逻辑91
6.2.2 更多数据建模92
6.2.3 更多业务逻辑93
6.3 用类管理显示逻辑94
6.3.1 显示一个集合96
6.3.2 顶层的显示逻辑98
6.4 最后的重构99
6.5 使用继承重构102
6.6 获得绿灯104
6.7 小结104
第7章 CoffeeScript高级用法105
7.1 正确的上下文105
7.2 用memoization节省工作108
7.3 新的习惯用法:选项对象111
7.4 小结115
第8章 异步操作117
8.1 理解异步操作117
8.2 了解远程API119
8.3 发出异步请求120
8.4 使用第三方库122
8.5 多个异步调用124
8.5.1 循环请求125
8.5.2 确定何时结束127
8.6 管理异步调用的替代方案128
8.6.1 承诺128
8.6.2 异步辅助库131
8.6.3 IcedCoffeeScript133
8.7 小结136
第9章 调试137
9.1 发现问题137
9.2 源映射138
9.2.1 Firefox的源映射开发工具139
9.2.2 Chrome的源映射开发工具144
9.3 解决问题150
9.4 小结151
第10章 在更多地方使用CoffeeScript153
10.1 直接在浏览器运行CoffeeScript153
10.2 CoffeeScript在浏览器控制台154
10.2.1 Firefox的CoffeeScript控制台155
10.2.2 Chrome的CoffeeScript控制台157
10.3 在Rails中使用CoffeeScript159
10.3.1 设置资产管道159
10.3.2 配置应用程序162
10.3.3 添加CoffeeScript163
10.3.4 预编译资产165
10.4 在Brunch中使用CoffeeScript166
10.4.1 创建Brunch项目166
10.4.2 完善应用程序167
10.4.3 预编译资产170
10.5 在Node.js环境下使用CoffeeScript170
10.5.1 创建项目171
10.5.2 保持服务器最新172
10.5.3 添加CoffeeScript编译173
10.5.4 完成应用程序173
10.5.5 整理脚本依赖关系175
10.6 小结176
第11章 在服务器中使用CoffeeScript177
11.1 用CoffeeScript运行服务器177
11.2 增加数据端180
11.3 使用数据库182
11.4 使用Cakefile184
11.4.1 写一个Cake任务185
11.4.2 更多Cake任务186
11.5 构建交互式应用程序186
11.6  小结190

教学资源推荐
作者: 郭志强 邱李华 曹青 等编著
作者: 刘艺 罗兵 周安栋
作者: 陈帆 和红杰 周荣辉
作者: 【美】梁勇(Y.Daniel Liang) 著
参考读物推荐
作者: 谢型果 严军 著
作者: 范长春 著
作者: [美]伊恩 F.达尔文(Ian F. Darwin)著
作者: Cay S.Horstmann, Gary Cornell