編輯推薦
本書通過一個簡單的詞頻統計任務來闡釋不同的編程風格,幫助讀者理解編寫程序和構建係統的不同方法,被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 電子書