编辑推荐
本书通过一个简单的词频统计任务来阐释不同的编程风格,帮助读者理解编写程序和构建系统的不同方法,被Software Development Times评为迄今为止zui好的程序设计书之一,在Amazon网站得到读者五星评价。
内容简介
“同样的故事,不同的说法”,编程亦可如此。本书分别使用33种方法,在不同的约束定义下,实现了同一个词频统计任务,展示出风格迥异的编程风格,帮助读者加深对程序设计和系统设计方式的理解,为读者提供崭新的编程思路。
本书适合计算机专业的学生、有一定编程基础的程序员以及任何有志提高变成水平的人。
作者简介
Cristina Videira Lopes是美国加州大学欧文分校,唐纳德?布伦信息与计算机科学学院信息学专业教授,研究方向是大规模数据和系统下的软件工程。在其职业生涯早年,曾是施乐帕罗奧多研究中心(Xerox PARC)面向方向编程及AspectJ编程语言团队的初创成员。除其研究项目以外,Cristina也是一位多产的软件开发者。她对于开源项目的贡献包括水下声纳调制解调软件和虚拟世界服务OpenSimulator。她是一家专注于为早期可持续城市重建项目提供在线虚拟现实服务的公司的联合创始人。她开发并维护了一款基于OpenSimulator虚拟世界的搜索引擎。
Cristina获得了美国东北大学的博士学位与葡萄牙技术高等学院( Instituto Superior Técnico)的本科与硕士学位,以及多项美国国家自然科学基金的资助,包括久负盛名的美国自然科学基金杰出青年奖。她是全球唯1同时获得ACM杰出科学家与Ohloh Kudos 9级会员 的人。
目录
第一部分 悠久历史
第1章 往日的美好 2
1.1 约束 2
1.2 代码 3
1.3 注解 5
1.4 系统设计中的应用 6
1.5 发展历程 7
1.6 拓展阅读 7
1.7 词汇表 8
1.8 练习 8
第2章 Forth风格 9
2.1 约束 9
2.2 代码 10
2.3 注解 12
2.4 发展历程 14
2.5 拓展阅读 14
2.6 词汇表 14
2.7 练习 15
第二部分 基本风格
第3章 单片风格 18
3.1 约束 18
3.2 代码 19
3.3 注解 20
3.4 系统设计中的应用 21
3.5 拓展阅读 22
3.6 词汇表 22
3.7 练习 22
第4章 食谱风格 23
4.1 约束 23
4.2 代码 24
4.3 注解 25
4.4 系统设计中的应用 26
4.5 发展历程 27
4.6 拓展阅读 27
4.7 词汇表 27
4.8 练习 28
第5章 流水线风格 29
5.1 约束 29
5.2 代码 30
5.3 注解 31
5.4 系统设计中的应用 33
5.5 发展历程 33
5.6 拓展阅读 34
5.7 词汇表 35
5.8 练习 35
第6章 高尔夫风格 39
6.1 约束 36
6.2 代码 37
6.3 注解 37
6.4 系统设计中的应用 38
6.5 发展历程 39
6.6 拓展阅读 39
6.7 词汇表 39
6.8 练习 39
第三部分 函数组合
第7章 无限镜像风格 42
7.1 约束 42
7.2 代码 43
7.3 注解 44
7.4 发展历程 44
7.5 拓展阅读 45
7.6 词汇表 45
7.7 练习 45
第8章 骨牌风格 46
6.1 约束 46
6.2 代码 47
6.3 注解 48
6.4 系统设计中的应用 48
6.5 发展历程 49
6.6 拓展阅读 49
6.7 词汇表 49
6.8 练习 50
第9章 单子风格 51
9.1 约束 51
9.2 代码 52
9.3 注解 53
9.4 发展历程 54
9.5 拓展阅读 54
9.6 词汇表 54
9.7 练习 55
第四部分
第10章 对象风格 58
10.1 约束 58
10.2 代码 59
10.3 注解 60
10.4 系统设计中的应用 62
10.5 发展历程 63
10.6 拓展阅读 63
10.7 词汇表 63
10.8 联系 64
第11章 消息风格 65
11.1 约束 65
11.2 代码 66
11.3 注解 68
11.4 系统设计中的应用 68
11.5 发展历程 68
11.6 拓展阅读 69
11.7 词汇表 69
11.8 练习 69
第12章 闭域风格 70
12.1 约束 70
12.2 代码 71
12.3 注解 72
12.4 发展历程 73
12.5 拓展阅读 73
12.6 词汇表 73
12.7 练习 73
第13章 抽象对象风格 75
13.1 约束 75
13.2 代码 76
13.3 注解 78
13.4 系统设计中的应用 80
13.5 发展历程 80
13.6 拓展阅读 80
13.7 词汇表 81
13.8 练习 81
第14章 好莱坞风格 82
14.1 约束 82
14.2 代码 83
14.3 注解 85
14.4 系统设计中的应用 86
14.5 发展历程 86
14.6 拓展阅读 86
14.7 词汇表 87
14.8 练习 87
第15章 公告板风格 88
15.1 约束 88
15.2 代码 89
15.3 注解 91
15.4 系统设计中的应用 92
15.5 发展历程 92
15.6 拓展阅读 92
15.7 词汇表 93
15.8 练习 93
第五部分
第16章 内省风格 96
16.1 约束 96
16.2 代码 97
16.3 注解 98
16.4 系统设计中的应用 98
16.5 词汇表 98
16.6 练习 99
第17章 反射风格 100
17.1 约束 100
17.2 代码 101
17.3 注解 102
17.4 系统设计中的应用 103
17.5 发展历程 103
17.6 拓展阅读 104
17.7 词汇表 104
17.8 练习 105
第18章 切面风格 106
18.1 约束 106
18.2 代码 107
18.3 注解 107
18.4 发展历程 108
18.5 拓展阅读 109
18.6 词汇表 109
18.7 练习 109
第19章 插件风格 111
19.1 约束 111
19.2 代码 112
19.3 注解 113
19.4 系统设计中的应用 114
19.5 发展历程 115
19.6 拓展阅读 115
19.7 词汇表 116
19.8 练习 116
第六部分 异常处理
第20章 构建风格 118
20.1 约束 118
20.2 代码 119
20.3 注解 120
20.4 系统设计中的应用 121
20.5 练习 121
第21章 Tantrum风格 122
21.1 约束 122
21.2 代码 123
21.3 注解 124
21.4 发展历程 125
21.5 拓展阅读 125
21.6 词汇表 125
21.7 练习 125
第22章 消极攻击风格 126
22.1 约束 126
22.2 代码 127
22.3 注解 128
22.4 发展历程 128
22.5 拓展阅读 128
22.6 词汇表 129
22.7 练习 129
22.8 构建风格 VS. Tantrum VS.消极攻击风格 130
第23章 声明意图风格 131
23.1 约束 131
23.2 代码 132
23.3 注解 133
23.4 发展历程 134
23.5 拓展阅读 135
23.6 词汇表 135
23.7 练习 136
第24章 隔离风格 137
24.1 约束 137
24.2 代码 138
24.3 注解 139
24.4 系统设计中的应用 142
24.5 发展历程 143
24.6 拓展阅读 143
24.7 词汇表 143
24.8 练习 143
第七部分 以数据为中心
第25章 持久表风格 143
25.1 约束 146
25.2 代码 147
25.3 注解 148
25.4 系统设计中的应用 149
25.5 发展历程 149
25.6 拓展阅读 150
25.7 词汇表 150
25.8 练习 150
第26章 试算表风格 151
26.1 约束 151
26.2 代码 152
26.3 注解 153
26.4 系统设计中的应用 153
26.5 发展历程 154
26.6 拓展阅读 154
26.7 词汇表 154
26.8 练习 154
第27章 漂流风格 155
27.1 约束 155
27.2 代码 156
27.3 注解 157
27.4 系统设计中的应用 158
27.5 发展历程 158
27.6 拓展阅读 158
27.7 词汇表 159
27.8 练习 159
第八部分 并发
第28章 参与者风格 162
28.1 约束 162
28.2 代码 163
28.3 注解 165
28.4 系统设计中的应用 167
28.5 发展历程 167
28.6 拓展阅读 167
28.7 词汇表 167
28.8 练习 168
第29章 数据空间风格 169
29.1 约束 169
29.2 代码 170
29.3 注解 171
29.4 系统设计中的应用 171
29.5 发展历程 171
29.6 拓展阅读 172
29.7 词汇表 172
29.8 练习 172
第30章 Map Reduce风格 173
30.1 约束 173
30.2 代码 174
30.3 注解 175
30.4 系统设计中的应用 176
30.5 发展历程 177
30.6 拓展阅读 177
30.7 词汇表 177
30.8 练习 177
第31章 双重Map Reduce风格 179
31.1 约束 179
31.2 代码 180
31.3 注解 181
31.4 系统设计中的应用 182
31.5 发展历程 182
31.6 拓展阅读 183
31.7 练习 183
第九部分 交互
第32章 三层架构风格 186
32.1 约束 186
32.2 代码 187
32.3 注解 188
32.4 系统设计中的应用 191
32.5 发展历程 191
32.6 拓展阅读 191
32.7 词汇表 191
32.8 练习 191
第33章 RESTful风格 193
33.1 约束 193
33.2 代码 194
33.3 注解 196
33.4 系统设计中的应用 199
33.5 发展历程 199
33.6 拓展阅读 199
33.7 词汇表 200
33.8 练习 200
精彩书摘
《编程风格:好代码的逻辑》:
对于上一章中所述的对象的概念,消息风格采朋了不同视角,但程序的划分方法与上一章相同。对象向外界公开一个过程(接收消息的过程)而并非一系列过程。数据和过程被隐藏在内部。一些能够被对象解释的消息,将通过过程执行的方式处理;一些无法被对象解释的消息,则被忽略或生成某种形式的错误;另一些消息可能并不由该对象直接处理,而由其他与接收对象相关的对象处理。
示例程序中的解决方案使用了和上一章一致的实体,但没有公开方法。取而代之,所有的类都只公开了一个接收消息的方法,即dispatch(第8~14行,第31~37行,第51~57行,第70~76行)。消息由一个能识别该消息的标签以及传递给内部过程的参数(或无参数)组成。根据不同的标签,内部过程可能被调用,也可能会抛出Message not understood异常。对象之间通过发送消息进行交瓦。
……
编程风格:好代码的逻辑 电子书 下载 mobi epub pdf txt