具体描述
《Dart编程语言》总计9章,前6章对Dart的对象、库、函数、类型、表达式与语句等基础知识进行了详细介绍;第7、8章对反射和isolate等进阶内容进行了深入讲解;第9章为总结。《Dart编程语言》与众不同之处是,除了介绍语言特性,更着重于讲解语言背后的原理和思想。
《Dart编程语言》内容较为深入,不太适合初学者,读者至少要具备基本的编程知识,最好是接触过其他编程语言且对Dart有基本了解。
作者简介
目录信息
1.1 动机 1
1.2 设计准则 2
1.2.1 万物皆对象 2
1.2.2 面向接口编程,而非面向实现 2
1.2.3 类型是为开发者服务的 3
1.3 限制 4
1.4 概述 4
1.5 本书结构 10
1.6 相关语言及其对Dart的影响 11
第2章 对象、接口、类与mixin 12
2.1 accessor 13
2.2 实例变量 16
2.3 类变量 16
2.4 final变量 18
2.5 相同与相等 18
2.6 类与父类 20
2.7 抽象方法与抽象类 22
2.8 接口 23
2.9 对象的创建 24
2.9.1 重定向构造函数 28
2.9.2 工厂构造函数 29
2.10 noSuchMethod() 30
2.11 常量对象与字段 31
2.12 类方法 31
2.13 实例及其类与元类 33
2.14 Object与其方法 34
2.15 mixin 35
2.16 相关语言 46
2.17 总结 46
第3章 库 47
3.1 顶层 47
3.2 脚本 48
3.3 隐私 49
3.4 导入 49
3.5 将库拆分成part 54
3.6 导出 55
3.7 钻石导入 56
3.8 延迟加载 58
3.9 相关语言 59
3.10 总结 60
第4章 函数 61
4.1 参数 61
4.1.1 位置参数 61
4.1.2 命名参数 62
4.2 函数体 63
4.3 函数声明 64
4.4 闭包 65
4.5 调用方法与函数 66
4.5.1 级联 66
4.5.2 赋值 68
4.5.3 使用运算符 68
4.6 Function类 68
4.7 函数作为对象 70
4.8 生成器函数 72
4.8.1 迭代器与可迭代对象 72
4.8.2 同步生成器 73
4.9 相关语言 74
4.10 总结 75
第5章 类型 76
5.1 可选类型 76
5.2 类型之旅 78
5.3 接口类型 81
5.4 类型实践:添加类型的表达式问题 83
5.5 泛型 87
5.6 函数类型 93
5.6.1 可选位置参数 94
5.6.2 命名参数 95
5.6.3 重温Call() 96
5.7 类型具体化 97
5.7.1 类型检测 97
5.7.2 强制类型转换 98
5.7.3 检查模式 99
5.7.4 具体化泛型 100
5.7.5 具体化和可选类型 100
5.7.6 类型和代理 101
5.8 malformed类型 104
5.9 非严格 106
5.10 相关语言 108
5.11 总结 109
第6章 表达式和语句 110
6.1 表达式 110
6.1.1 字面量 110
6.1.2 标识符 117
6.1.3 this 121
6.1.4 常量 121
6.1.5 创建对象 122
6.1.6 赋值 123
6.1.7 抽取属性 124
6.1.8 方法调用 124
6.1.9 使用运算符 125
6.1.10 Throw 126
6.1.11 条件运算符 127
6.2 语句 127
6.2.1 block 127
6.2.2 if 127
6.2.3 循环 128
6.2.4 try-catch 130
6.2.5 rethrow 131
6.2.6 switch 131
6.2.7 assert 133
6.2.8 return 135
6.2.9 yield和yield-each 137
6.2.10 label 138
6.2.11 break和continue 139
6.3 总结 140
第7章 反射 141
7.1 自省 141
7.1.1 速度与大小的影响 144
7.1.2 例子:代理 146
7.1.3 例子:序列化 147
7.1.4 例子:解析器组合器 158
7.2 为什么使用mirror 168
7.3 元数据 169
7.4 通过代码生成执行反射 169
7.5 自省之外 172
7.6 相关语言 173
7.7 总结 173
第8章 异步和isolate 174
8.1 异步 174
8.2 future 175
8.2.1 使用future 175
8.2.2 生成future 176
8.2.3 调度 177
8.3 stream 178
8.4 isolate 178
8.4.1 Port 179
8.4.2 spawning 179
8.4.3 安全 180
8.5 例子:客户端-服务器通信 180
8.5.1 promise:更好的future 180
8.5.2 将isolate作为分布式对象 182
8.6 异步函数 187
8.6.1 await 187
8.6.2 异步Generator 188
8.6.3 await-for循环 189
8.7 相关语言 189
8.8 总结 189
第9章 结论 190
9.1 可选类型 190
9.2 面向对象 191
9.3 反射 192
9.4 工具 192
9.5 总结 193
相关文献 194
· · · · · · (收起)
读后感
用户评价
从排版和阅读体验的角度来看,这本书的处理堪称艺术品级别的匠心之作。它的纸张选择和墨水质量都非常考究,长时间阅读下来,眼睛的疲劳感明显低于其他一些使用反光严重纸张的教材。更重要的是,书中对 Dart 语言的“哲学”解读,让我对这门语言产生了更深层次的共鸣。作者多次强调 Dart 的“可预测性”和“开发效率”,这与当前业界对技术栈稳定性的高要求不谋而合。特别是当涉及到空安全特性(Null Safety)的讲解时,书中用了很多对比的方式,展示了 Dart 在避免运行时异常方面的精妙设计,这对于习惯了在其他语言中与 `NullPointerException` 搏斗的开发者来说,无疑是一种解脱和启示。
作为一名有一定编程背景的开发者,我最看重的是一本书能否在基础之上提供足够多的“进阶养料”。这本书在这方面做得非常出色。它没有冗长地重复那些在网上随处可见的基础教程内容,而是迅速切入到 Dart 语言的独特机制,比如异步编程模型的设计哲学,以及它如何优雅地处理并发问题。我对其中关于“Isolates”的章节印象极为深刻,作者没有用晦涩的术语堆砌,而是通过一个精心构建的项目案例,一步步展示了如何在 Dart 中实现真正的并行计算,这对于构建高性能的后端服务或复杂的桌面应用无疑是至关重要的理论支撑。读完这部分内容,我对 Dart 的信心又增加了一层,它不仅仅是为移动端准备的,其在全栈领域的潜力也在此得到了充分的展示。
这本书的结构组织逻辑非常清晰,仿佛是为自学人士量身定制的路线图。从初识变量、控制流,到深入类型系统、面向对象范式,每一步的过渡都自然流畅,很少出现“学完前一章,发现后一章的基础没打牢”的窘境。更值得称赞的是,作者在章节末尾设置的“思考与挑战”环节,这些问题往往不是简单的代码复述,而是需要读者综合运用所学知识去解决一个小型设计难题。我曾在一个关于泛型约束的练习中卡住了许久,但正是那种轻微的挫败感,最终促使我更深入地理解了类型安全的真正含义。这种互动式的学习体验,远比单纯的阅读和模仿代码更有效率。
我必须承认,在开始阅读这本书之前,我对 Dart 的印象还停留在“Flutter 的配套语言”这个刻板印象中。然而,这本书彻底颠覆了我的认知。它系统地介绍了 Dart 在服务器端编程(如 Dart Frog 或 Shelf 框架的潜力)、命令行工具开发,乃至 WebAssembly 编译方面的最新进展。作者的视野非常开阔,将 Dart 定位为一个真正的“通用”语言进行阐述,而非仅仅是特定生态系统中的一员。阅读过程中,我多次被鼓励去尝试使用 Dart 的内置库来完成一些过去习惯用 Python 或 Node.js 来做的小脚本,这种尝试不仅拓宽了我的工具箱,也让我看到了 Dart 语言在跨平台能力上的巨大潜力。这本书提供给读者的,不仅仅是技术手册,更是一种对未来编程范式的洞察。
这本书的装帧和设计风格着实让人眼前一亮,那种沉稳中带着一丝现代感的排版,即使是初次翻阅,也能感受到作者在细节上的用心。尤其是那些代码示例的呈现方式,清晰明了,关键概念的突出处理得恰到好处,对于一个希望快速进入状态的初学者来说,这简直是福音。我特别欣赏作者在介绍基础语法结构时所采用的类比手法,它能将抽象的编程概念巧妙地与日常生活中的场景联系起来,使得学习过程不再枯燥。而且,书中对性能考量的讨论也相当深入,不仅仅停留在“能跑就行”的层面,而是引导读者思考如何写出更高效、更具工程实践价值的代码。这种对质量的追求,让这本书在众多编程入门读物中显得尤为突出。我感觉作者不仅仅是在传授知识,更像是在塑造一种良好的编程思维习惯。
讲真最后讲isolate的章节感觉略晦涩,不知道是翻译的问题还是我水平的问题。 一开始想去看Dart是因为有传闻说Google的Fuchsia系统很可能会用Dart作为主要的编程语言,其实也是蛮期待的。 就在前几天Flutter1.0版本发布,一夜之间讨论Dart的人也多起来了,之前预览版时候也看过Flutter的Demo,感觉也不错,比起某些标榜让前端人员能够无障碍开发APP(但最终原生APP开发者使用起来都觉得有障碍)的框架来讲Flutter优势还是蛮多的,估计Google也是在为Fuchsia做铺垫吧。 Dart作为一门相对来讲比较新的语言,由于吸取借鉴了多种语言,语言方面上的优势很明显,后面关键就是推开发者了,社区和生态做起来就前途无量了。
翻译差劲
翻译差,对应版本低(1.0),重点章节放反射可是 flutter 又用不了
不是入门教程,看起来很懵逼,还不如直接百度看dart的相关博文来得明白实在
原书还是值得一读。