編程風格 : 好代碼的邏輯 (Exercises in Programming Style)

克裡斯蒂娜·維代拉·洛佩斯 (Cristina Videira Lopes)

買這商品的人也買了...

商品描述

“同樣的故事,不同的說法”,編程亦可如此。本書分別使用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.TantrumVS.消極攻擊風格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章MapReduce風格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章雙重MapReduce風格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