基本信息
编辑推荐
1.国内目前唯一一本Dart语言编程的中文图书。
2.本书用一种最快的方式教读者学习Dart语言——从第1页开始就给出真正的代码和实际项目。
内容简介
计算机书籍
《Dart语言程序设计》是第一本关于Dart语言的中文书籍,介绍了当前Dart语言的最新内容。书中涵盖了Dart语言基础、并发编程、Web编程和HTML5应用等方方面面的内容。
因为Dart语言让人感觉非常熟悉,与一般编程语言的书通常以“Hello World”开篇不同,《Dart语言程序设计》一开始就带领读者编写一个Ajax功能的应用程序,然后详细讨论Dart的基本类型,把Dart编译为JavaScript,面向对象的编程方法,并构建一个易于使用和维护的库,最后介绍在Dart中如何使用HTML5编程。
作者通过真实的项目,引领读者用Dart解决实际问题。每一个项目作为进一步深入讨论Dart语言特性的基础。为了增强对Dart语言的理解,项目会逐渐深入,并且越来越复杂。读完整《Dart语言程序设计》后,读者不仅获得全面的Dart语言的知识,而且还从头构建了一个完整的MVC库。
《Dart语言程序设计》适合编程语言爱好者和Web开发者阅读。
作译者
韩国恺 程序员/开发经理,8年软件开发实践经验,3年团队管理经验。擅长Web和后端技术,熟悉多种编程语言,关注互联网行业。在创业公司负责解决架构、开发和运维等方面的所有技术问题。
目录
第一部分 入门
第1章 项目:第一个Dart应用程序 2
1.1 后端部分 2
1.2 Dart的HTML部分 3
1.3 Dart的Ajax部分 4
1.4 这个应用程序还无法运行 9
1.5 下一步做什么 9
第2章 基本类型 10
2.1 数字类型 10
2.2 字符串类型 10
2.3 布尔类型 12
2.4 HashMap(也称为Hash或关联数组) 12
2.5 列表(也称为数组) 14
2.6 日期类型 16
2.7 类型 17
2.8 下一步做什么 18
第3章 Dart中的函数式编程 19
3.1 匿名函数 20
3.2 一阶函数 23
译者序
Dart是一门很新的语言,自发布以来发展速度很快。这要感谢Google的大力支持和社区的积极反馈。说它很新,是因为在翻译此书时,Dart发布还不满一年,甚至还没有发布第一个正式版(但是很快会发布第一个里程碑版M1)。说它发展很快,是因为这一年来频繁地发布更新,很多方面都在不断地完善和改进,甚至我在翻译此书时都要不断跟进Dart语言的最新版本,并对原书的内容做更新和修订。
正是由于这两点,本书与其他编程语言书籍明显不同。我深知技术爱好者对最新内容的渴望,所以翻译此书时我给自己定的一个目标就是要保持书中的内容最新。通过对原书内容的大量修订和补充,以及对示例代码的实际验证和修改,尽可能保证本书在出版时能够与Dart语言的最新版本一致。
Dart是一门很特别的语言。我觉得其最有特色的特性是可选类型,在动态语言的基础上,结合了静态语言的优点。另一个特色是,Dart中的类和接口是统一的,每个类都有一个隐式接口。除此之外,还有很多非常不错的特性,比如工厂构造函数和命名构造函数、getter/setter方法、语言级别的级联调用等。作为现代语言的基本功能,Dart自然也包含了良好的面向对象和并发编程的支持,未来可能还支持Mixin和基于镜像的反射。
编程语言并不是孤立存在的,Dart也是这样,它由语言规范、虚拟机、类库和工具组成。因为Dart要运行于其他浏览器中,所以dart2js编译工具也是语言核心的一部分。Dart Editor是Dart的集成开发环境,包含了语言分析工具,Dart的可选类型带来的一个好处就是,它可以像静态语言一样得到IDE的良好支持,而这就是由语言之外的独立分析工具提供的。
尽管本书篇幅不大,但内容比较全面。同时以实践性的项目章节贯穿全书。
这是我翻译的第一本书,翻译中出现错误在所难免,请读者见谅并反馈给我。另外,还要感谢出版社和编辑给予的大力支持。
韩国恺
2012年10月17日
前言
当我问这个问题时,我并不想知道Google为什么正在致力于Dart,我也不是想问这门语言的设计者希望实现什么。当然,在这本书中我们将谈及这些问题和更多的内容。
我也常常问自己:“为什么使用Dart?”到底是什么让我认为这是一门值得学习的好语言,甚至愿意单独为这门语言写一整本书?特别是当前才发布了0.08版①。
这个问题的答案与我的个人及职业发展轨迹有关——理解如何使互联网更快。回到那段日子,我还是一名简简单单的Peri程序员。我很喜欢Perl这门语言,并用它做些我想做的东西。但是,当接触了Ruby和RubyonRails之后,我震惊了。简单、清晰的代码和强约定的组合赢得了我的青睐,而且持续了相当长的一段时间。
之后,我尝试了小型框架,如Sinatra,它保留了Ruby语言的美,但是却带来更小、更快的代码。这两种框架都满足了Web开发的连续性,我当时也很满意。
但是还能有更多的选择吗?这最终把我带到了Node.js以及在其上构建的各种JavaScript框架,而且看起来很难再对服务器端进行改进。
然后,我发现了SPD俨协议,它令我着迷,以至于写了The SPDY Book这本书。这不仅是改进现有的东西,而且是尝试重新定义游戏规则。
在我接触SPDY的时候,我注意到了一件事,无论我利用多少这种协议所提供的优势,Web应用的最终速度还是受限于处理网页和客户端脚本、CSS等的速度。
JavaScript已经有17年的历史了。在它首次被引入时,还没有Web 2.0、Ajax、CSS,而且根本没有多少客户端交互。当JavaScript首次出现时,主要的使用场景就是验证表单并用警告框提示!
在接下来的17年里,JavaScript语言已经从网景公司拥有并缓慢开发的一种专有语言,演化为一个定期添加新特性的Web标准。但是与委员会添加新特性到标准中相比,Web演化的速度明显更快。
然后Dart语言到来了。Dart问:考虑到我们现今所知的Web,我们如何从头开始构建JavaScript?怎样才能尽可能快地加载和运行?如何编写才能使我们很容易地定义和加载外部库?
我们怎样才能使开发者轻松地写出漂亮的代码?
如果Dart语言是这许多问题的答案(并且我将实际尝试它们),那么Dart很可能是很长一段时间内最令人兴奋的技术。
这就是对“为什么使用Dart?”的回答。
谁应该阅读本书(除了技术达人)
这本书主要是为那些想让自己的JavaScript技能保持最新的开发者们写的。提高JavaScript技能的最好途径就是亲身实践和阅读别人的代码。但是,有时看看竞争者正在忙什么也会有根本上的帮助。既然这样,随着我们探索Dart语言带来了什么,我们能够更好地理解这种优秀语言的与众不同之处。
我也希望这本书会证明这种新的转变是有用的。对于当今的浏览器,Dart语言已经是一个可用于构建快速Web应用的有价值的平台。我希望你在读完这本书后,能够很好地武装起来去开发下一代Web应用。
这本书的目标读者应该是喜欢学习各种编程语言的开发者。我关注了Dart语言的很多方面,特别是那些令我兴奋和高兴的地方。
当然,技术达人也应该读这本书。Dart语言相当与众不同,并且足够强大,这使它正吸引着经典的语言技术达人,值得那些想改变世界的人们花时间阅读。
本书的组织
媒体评论
——Matt Margolis
起初我有点儿怀疑Dart语言。这本书让我了解到Dart语言的前景和当前的状态,它将作为我可以依赖的一本可靠的参考书目。
——Juho Vepsalainen
这是第一本介绍Dart这种令人兴奋且十分有前途的编程语言的书。清晰和平易近人的文字很吸引读者,它肯定会对Dart语言的成功有所贡献。我特别喜欢作者对这种语言函数式方面论述以及对Isolate的讨论。
——Dr.Ivo Balbaen