具体描述
《Dart语言程序设计》是第一本关于Dart语言的中文书籍,介绍了当前Dart语言的最新内容。书中涵盖了Dart语言基础、并发编程、Web编程和HTML5应用等方方面面的内容。
因为Dart语言让人感觉非常熟悉,与一般编程语言的书通常以“Hello World”开篇不同,《Dart语言程序设计》一开始就带领读者编写一个Ajax功能的应用程序,然后详细讨论Dart的基本类型,把Dart编译为JavaScript,面向对象的编程方法,并构建一个易于使用和维护的库,最后介绍在Dart中如何使用HTML5编程。
作者斯特罗姆通过真实的项目,引领读者用Dart解决实际问题。每一个项目作为进一步深入讨论Dart语言特性的基础。为了增强对Dart语言的理解,项目会逐渐深入,并且越来越复杂。读完整《Dart语言程序设计》后,读者不仅获得全面的Dart语言的知识,而且还从头构建了一个完整的MVC库。
《Dart语言程序设计》适合编程语言爱好者和Web开发者阅读。
作者简介
Chris Strom, 作家、程序员、演讲者。他认为自己是一个不懈努力和热爱分享的学习者,并写了有超过1000多篇博客文章作为他撰写本书时的研究笔记,他的个人主页是http://japhr.blogspot.com/。他有超过10年的Perl、Ruby、JavaScript编程经验。除本书之外,他还著有《The SPDY Book》和《Gaming JavaScript for Girls and Boys》两本书,并且是与人合著了《Recipes with Backbone》一书的合著者。
目录信息
第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
3.3 可选参数 23
3.4 下一步做什么 24
第4章 操作DOM 25
4.1 dart:html 25
4.2 查找元素 25
4.3 添加元素 27
4.4 删除元素 28
4.5 更新元素 29
4.6 DOM就绪 30
4.7 下一步做什么 30
第5章 编译为JavaScript 31
5.1 用dart2js编译为JavaScript 32
5.2 维护Dart与JavaScript并存 34
5.3 下一步做什么 36
第二部分 有效的编程技术
第6章 项目:Dart中的MVC 38
6.1 Dart中的MVC 38
6.2 实现集合 40
6.3 实现模型 44
6.4 实现视图 47
6.5 实现删除 50
6.6 下一步做什么 52
第7章 类和对象 53
7.1 类是顶级概念 53
7.2 实例变量 54
7.3 方法 55
7.4 静态方法和静态变量(也称为类方法和类变量) 58
7.5 接口 60
7.6 子类 61
7.7 构造函数 61
7.8 下一步做什么 67
第8章 事件 68
8.1 普通事件 68
8.2 自定义事件系统 69
8.3 下一步做什么 73
第三部分 代码组织
第9章 项目:提炼库 76
9.1 要提炼什么,要保留什么 76
9.2 真正的库 81
9.3 下一步做什么 84
第10章 库 85
10.1 part语句 85
10.2 import语句 87
10.3 核心Dart库 89
10.4 下一步做什么 89
第四部分 可维护性
第11章 项目:变化的行为 92
11.1 用noSuchMethod()改变类行为 92
11.2 通过依赖注入实现同步 97
11.3 下一步做什么 101
第12章 测试 102
12.1 获得测试框架 102
12.2 2+2=5应该出错 103
12.3 下一步做什么 108
第五部分 Dart的高级使用
第13章 项目:终结回调函数的地狱 110
13.1 Future 110
13.2 Future中的错误处理 113
13.3 下一步做什么 115
第14章 Future和Isolate 116
14.1 Completer和Future 116
14.2 Isolate 118
14.3 小结 119
第15章 HTML5和Dart 121
15.1 动画 121
15.2 本地存储 122
15.3 WebSocket 123
15.4 Canvas 125
15.5 小结 127
· · · · · · (收起)
读后感
用户评价
作为一名计算机科学专业的学生,我一直致力于寻找能够帮助我深入理解编程语言底层原理的书籍。《Dart语言程序设计》在这方面给我留下了深刻的印象。书中对于Dart的内存管理、垃圾回收机制的讲解,虽然篇幅不长,但却非常精炼和准确,让我对Dart的性能有了更深入的认识。而且,书中还介绍了Dart的虚拟机(VM)和编译模式(AOT/JIT),这对于理解Dart的运行机制和性能优化至关重要。我特别欣赏书中关于Dart的类型擦除和类型检查的讲解,这让我能够更好地理解Dart如何保证代码的类型安全。此外,书中还探讨了Dart的并发模型,包括Isolate的概念,这与传统的线程模型有所不同,理解好Isolate对于编写高性能、可扩展的应用至关重要。我通过这本书,不仅学会了如何使用Dart进行编程,更重要的是,我对Dart语言的设计理念和底层机制有了更深刻的理解,这对于我未来学习其他编程语言和深入研究计算机系统都有着重要的意义。
这本书的结构设计非常合理,每一章节都紧密衔接,层层递进,让学习过程流畅且富有逻辑性。我特别喜欢书中对“枚举”和“密封类”的讲解,这两个特性在其他语言中并不常见,但在Dart中却能极大地提高代码的可读性和安全性。作者通过清晰的代码示例,让我明白了枚举如何用于定义一组固定的常量,而密封类又如何能够帮助我们限制类的继承层级,从而在编译时就能捕获更多潜在的错误。此外,书中还对Dart的“扩展方法”(extension methods)进行了详细的介绍,这是一种非常优雅的为现有类添加新功能的方式,能够有效避免代码的重复和耦合。我通过阅读这本书,不仅掌握了Dart语言的各种语法特性,还学会了如何利用这些特性来编写出更简洁、更高效、更易于维护的代码。这本书不仅是一本学习Dart的教程,更是一本提升编程思维和代码设计能力的宝典。
这本书的语言风格非常接地气,不像有些技术书籍那样枯燥乏味。作者在讲解每一个概念时,都非常注重从读者的角度出发,用生动形象的比喻和通俗易懂的语言来解释复杂的原理。我尤其喜欢书中对于“可空类型”的讲解,作者通过一个非常贴切的生活场景,形象地说明了为什么需要可空类型,以及它如何帮助我们避免运行时错误。这种“润物细无声”的教学方式,让我感觉学习过程既轻松又高效。而且,书中提供的代码示例不仅量大,而且质量也非常高。每一个示例都紧密围绕着讲解的内容,代码风格清晰规范,注释也很到位,方便我理解和模仿。我甚至发现,书中有些示例的代码逻辑,比我之前在网上搜集到的零散资料还要精炼和高效,这无疑大大节省了我的学习时间。另外,这本书的排版也非常用心,字体大小适中,行距合理,阅读起来不会感到压抑。章节之间的过渡也很自然,不会让人觉得生硬。这种对细节的关注,充分体现了作者的专业性和对读者的尊重。我相信,即使是初次接触Dart的读者,也能在这本书的引导下,快速掌握Dart语言的核心知识,并建立起扎实的编程基础。
我是一个拥有多年JavaScript开发经验的开发者,在接触Flutter之前,Dart对我来说是一个全新的领域。怀着学习新语言的好奇心,我找到了《Dart语言程序设计》。这本书最吸引我的地方在于,它能够巧妙地将Dart的特性与JavaScript的相似之处进行对比,从而帮助我快速理解Dart的差异和优势。例如,书中在讲解Dart的函数式编程特性时,就与JavaScript的箭头函数进行了类比,这让我能够更快地掌握Dart的函数式编程技巧。而且,书中对于Dart的模块化和包管理系统的介绍也非常全面,这对于我构建大型项目非常有帮助。我尤其喜欢书中关于“级联操作符”和“操作符重载”的讲解,这些特性在JavaScript中并不常见,但在Dart中却能让代码写起来更加简洁高效。这本书的实战案例也非常丰富,涵盖了从简单的控制台应用到更复杂的网络请求和UI构建等场景。我通过阅读和实践这些案例,不仅巩固了对Dart语法的理解,还学会了如何将Dart应用于实际的开发任务中。这本书无疑是帮助我从JavaScript开发者转型到Flutter开发者的重要桥梁。
我是一名PHP开发者,在尝试迁移到Flutter进行移动应用开发时,对Dart这门语言感到既陌生又好奇。《Dart语言程序设计》这本书为我打开了新世界的大门。书中在讲解Dart的集合类型,如List、Set、Map时,都提供了非常详细的说明和使用示例,并且还将其与PHP中的数组和关联数组进行了对比,这让我能够快速理解Dart的集合操作。我尤其对书中关于Dart的“异步流”(async streams)的讲解印象深刻,这是一种处理一系列异步事件的强大机制,作者通过生动的例子,让我明白了如何使用stream来处理文件读取、网络数据等场景,这在PHP中是难以想象的。而且,书中还涵盖了Dart的“函数式编程”范式,包括map、filter、reduce等操作,这些都能让代码写起来更加简洁和富有表现力。我相信,通过这本书,我能够顺利地掌握Dart语言,并将其应用于Flutter开发中,为我带来全新的开发体验。
这本书的封面设计真是别具匠心,用简洁的色块勾勒出Dart的标志,给人一种专业而又充满活力的感觉。拿到手上,纸张的质感也很不错,不会太滑腻,也不会太粗糙,阅读起来十分舒适。我一直对Dart语言充满好奇,因为它在Flutter开发中的地位举足轻重,许多优秀的App都离不开它。在翻阅这本书的目录时,我被其内容的深度和广度所吸引,从基础语法到高级特性,再到实战应用,似乎囊括了学习Dart过程中可能遇到的所有关键点。更重要的是,它不仅仅是理论的堆砌,还穿插了大量的代码示例,并且这些示例都经过精心设计,能够清晰地展示每一个概念的实际应用。我特别期待书中关于异步编程和并发处理的部分,这部分内容往往是许多语言的难点,而Dart在这方面有着独特的优势,我希望通过这本书能够透彻地理解其原理和用法。此外,书中对面向对象编程的讲解也让我眼前一亮,它并没有简单地照搬其他语言的范式,而是结合了Dart自身的特性,提出了更优雅、更符合Dart风格的解决方案,这对于我这种有其他编程语言基础的开发者来说,非常有价值。我相信,这本书一定会成为我学习Dart道路上不可或缺的伙伴,带领我深入探索Dart的奥秘。
我一直对Flutter框架情有独钟,而Dart语言正是Flutter的基石。在寻找一本能够系统性学习Dart的书籍时,我毫不犹豫地选择了《Dart语言程序设计》。这本书的内容组织非常有条理,从最基础的变量、数据类型开始,循序渐进地讲解了Dart的各种核心特性,如函数、类、继承、接口、mixin等等。我特别欣赏书中对于“mixin”的讲解,这是一种非常独特且强大的语言特性,而本书通过清晰的示例,让我充分理解了mixin的优势以及如何在实际开发中运用它来提高代码的复用性和灵活性。此外,书中对Dart的异步编程模型,包括Future、async/await的讲解也十分透彻。我曾经在其他语言中对异步编程感到困惑,但通过这本书,我不仅理解了Dart的异步机制,还学会了如何优雅地处理异步操作,这对于开发高性能的应用程序至关重要。我还注意到,书中还涉及了Dart的类型系统,包括泛型、类型推断等方面,这些内容对于编写健壮、可维护的代码非常有帮助。可以说,这本书为我构建了一个坚实的Dart语言知识体系,为我后续深入Flutter开发打下了坚实的基础。
我是一名经验丰富的Java开发者,最近开始接触Flutter,并希望系统学习Dart语言。在众多Dart书籍中,《Dart语言程序设计》以其深入浅出的讲解风格和丰富的实践案例脱颖而出。书中在讲解Dart的面向对象特性时,巧妙地与Java的类、继承、多态等概念进行对比,让我能够更快地理解Dart的OO模型,并发现Dart在某些方面比Java更加简洁和灵活。例如,Dart的构造函数语法,特别是命名构造函数,就比Java的构造函数更加强大和易用。我还惊喜地发现,书中对Dart的“泛型”讲解非常透彻,不仅解释了泛型如何提高代码的类型安全性和复用性,还提供了许多实际应用场景的示例,这对于我这种习惯了Java泛型的开发者来说,非常有帮助。此外,书中对Dart的错误处理和异常机制的讲解也非常到位,它详细介绍了try-catch-finally的用法,以及如何自定义异常,这对于编写健壮的应用程序至关重要。我相信,这本书将是我在Flutter开发旅程中的重要指南,帮助我快速掌握Dart这门强大的语言。
这本书的知识密度非常高,但作者通过清晰的结构和精炼的语言,使得学习过程既充实又高效。我特别喜欢书中对“模式匹配”(pattern matching)概念的讲解,尽管Dart的模式匹配相对较新,但作者通过示例清晰地展示了它如何简化条件判断和数据提取,为编写更优雅的代码提供了新的思路。而且,书中对Dart的“并发安全”(concurrency safety)的讨论也让我受益匪浅,它详细介绍了Isolate如何实现隔离的内存空间,从而避免了传统多线程编程中的许多同步问题。我从书中了解到,Dart的Isolate模型是一种非常高效且安全的方式来处理并发任务。此外,书中还对Dart的“响应式编程”(reactive programming)进行了初步的介绍,并提到了RxDart等库,这让我对如何构建更具响应性和可维护性的应用程序有了新的认识。总而言之,这本书不仅教授了Dart的语法,更重要的是,它引导我思考如何利用Dart的特性来设计出更优秀的软件。
我是一位对编程语言充满热情的独立开发者,在了解了Flutter的强大能力后,我决心深入学习Dart语言。《Dart语言程序设计》这本书真正满足了我对深度和广度的需求。书中不仅涵盖了Dart的基础语法,还深入探讨了语言的高级特性,例如“派生类”(derived classes)的继承方式,以及Dart如何支持多重继承的替代方案——mixin。作者在讲解这些概念时,并没有停留在理论层面,而是提供了大量的实际应用场景,让我明白了如何在真实的项目中运用这些强大的特性。我特别欣赏书中关于Dart的“元数据”(metadata)和“注解”(annotations)的讲解,这使得我能够为代码添加额外的描述信息,并利用第三方库来处理这些元数据,从而实现更高级的代码生成和运行时检查。此外,书中对Dart的“国际化”(internationalization)和“本地化”(localization)的支持也进行了介绍,这对于开发面向全球用户的应用至关重要。我相信,这本书将是我在Dart语言学习旅程中的重要里程碑,为我开发高质量的应用程序提供坚实的技术支持。
对Dart有兴趣的可以读一读。评2星是因为我对Dart没有兴趣。
无聊的书
在程序员博客上看到篇文章是节选自这本书,说的是去掉function关键字提高了可读性,还有可选参数,就买了这本书。 很薄,入门级别的。列几个典型的特点,比如future、import、class,虽然js这些可以由第三方库提供,但语言层面就支持还是方便很多。 还是要实践做下应用才行,比如TODO应用
很烂的一杯,包括原作就比较烂。
有点过时