三级一区在线视频先锋_丁香另类激情小说_中文字幕一区二区三_一本一道久久a久久精品综合蜜臀_一区二区三区四区国产精品_日韩**一区毛片_在线观看日韩电影_1000部国产精品成人观看_免费不卡在线视频_亚洲国产日日夜夜_国产亚洲精品福利_亚洲精品一区二区三区在线观看_欧美美女一区二区三区_日韩欧美色电影_欧美aaa在线_久久这里只有精品6

讀書月攻略拿走直接抄!
歡迎光臨中圖網(wǎng) 請 | 注冊

包郵 函數(shù)式編程圖解

出版社:清華大學(xué)出版社出版時間:2025-02-01
開本: 其他 頁數(shù): 0
中 圖 價:¥121.0(7.2折) 定價  ¥168.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

函數(shù)式編程圖解 版權(quán)信息

函數(shù)式編程圖解 本書特色

目前,C 、Scala、Java、C#、Python等高級編程語言也設(shè)計了函數(shù)式編程語言特性。但函數(shù)式編程語言設(shè)計思想抽象,特性比較多,這給很多讀者帶來了很大的困擾,尤其是涉及并發(fā)的編程,已成為很多人的夢魘。本書以圖解方式,以Scala和Java語言作為實現(xiàn)載體,通過大量的代碼示例和案例呈現(xiàn)出了函數(shù)式編程語言的特性。本書內(nèi)容比較基礎(chǔ),建議讀完本書的讀者閱讀《函數(shù)式與并發(fā)編程》(Functional and Concurrent Programming),該書與本書一脈相承,都以Scala和Java作為示例,主要圍繞函數(shù)式編程和并發(fā)編程高級特性展開講解。本書適合計算機(jī)科學(xué)與工程、軟件工程、人工智能專業(yè)的高年級本科生和企業(yè)中對函數(shù)式編程感興趣的工程師閱讀。

函數(shù)式編程圖解 內(nèi)容簡介

"《函數(shù)式編程圖解》旨在以通俗易懂的方式向命令式開發(fā)人員介紹函數(shù)式編程。從簡短的編程任務(wù)開始,逐一引入諸如純函數(shù)和不可變數(shù)據(jù)等基本概念,并在此過程中穿插講解如何消除由復(fù)雜分布式狀態(tài)引起的常見錯誤,適時探索IO、并發(fā)和數(shù)據(jù)流的函數(shù)式處理方式。讀完本書后,你便能輕松編寫出易于理解、測試和維護(hù)的簡潔函數(shù)式代碼。 主要內(nèi)容 ?使用函數(shù)和類型(而非對象)進(jìn)行設(shè)計 ?使用純函數(shù)和不可變值進(jìn)行編程 ?編寫函數(shù)式風(fēng)格的并發(fā)程序 ?測試函數(shù)式程序"

函數(shù)式編程圖解函數(shù)式編程圖解 前言

你好!感謝購買《函數(shù)式編程圖解》。過去十年,我一直在與程序員討論編程方法、其可維護(hù)性以及函數(shù)式編程概念逐漸被主流語言所采用這一趨勢。許多專業(yè)開發(fā)人員表示,目前仍然很難從現(xiàn)有資源中學(xué)習(xí)函數(shù)式概念,因為這些資源要么過于簡單,要么過于復(fù)雜。這就是本書試圖填補(bǔ)的空白。本書旨在為那些想要全面了解基本函數(shù)式編程概念的程序員提供一種循序漸進(jìn)的實用指南。
實踐出真知,這就是本書大量使用實例的原因。讀完這本入門書后,你將能夠使用函數(shù)式方案編寫功能齊全的程序,并輕松深入研究其理論基礎(chǔ)。
如果你曾使用命令式面向?qū)ο笳Z言(如Java或Ruby)創(chuàng)建重要的應(yīng)用程序,那么你將從本書中獲益匪淺。如果你所在的團(tuán)隊曾應(yīng)對大量錯誤和可維護(hù)性問題,那么本書將是你的一大助力,因為這正是函數(shù)式編程的用武之地。
希望你喜歡閱讀本書并完成習(xí)題,*好能像我寫作時一樣享受。再次感謝你對本書的喜愛!

——Micha? P?achta

函數(shù)式編程圖解 目錄

第I部分 函數(shù)式工具包
第1章 學(xué)習(xí)函數(shù)式編程 3
1.1 也許你選擇本書是因為……4
1.2 你應(yīng)掌握的背景知識 5
1.3 函數(shù)是什么樣的 6
1.4 認(rèn)識函數(shù) 7
1.5 當(dāng)代碼說謊時…… 8
1.6 命令式與聲明式 9
1.7 小憩片刻:命令式與聲明式 10
1.8 解釋:命令式與聲明式 11
1.9 學(xué)習(xí)函數(shù)式編程的益處 12
1.10 進(jìn)入Scala 13
1.11 練習(xí)用Scala編寫函數(shù) 14
1.12 準(zhǔn)備工具 15
1.13 了解REPL 16
1.14 編寫你的**個函數(shù) 17
1.15 如何使用本書 18
小結(jié) 19

第2章 純函數(shù) 21
2.1 為什么需要純函數(shù) 22
2.2 命令式編碼 23
2.3 破譯代碼 24
2.4 傳遞數(shù)據(jù)的副本 25
2.5 再次破譯代碼…… 26
2.6 重新計算而不是存儲 27
2.7 通過傳遞狀態(tài)來集中于邏輯 28
2.8 狀態(tài)去哪兒了 29
2.9 純函數(shù)和非純函數(shù)之間的區(qū)別 30
2.10 小憩片刻:將命令式代碼重構(gòu)為純函數(shù) 31
2.11 解釋:將命令式代碼重構(gòu)為純函數(shù) 32
2.12 純函數(shù)是值得信任的 34
2.13 程序語言中的純函數(shù) 35
2.14 保持純函數(shù)的難度…… 36
2.15 純函數(shù)和清潔代碼 37
2.16 小憩片刻:純函數(shù)還是非純函數(shù) 38
2.17 解釋:純函數(shù)還是非純函數(shù) 39
2.18 使用Scala編寫純函數(shù) 40
2.19 用Scala練習(xí)純函數(shù) 41
2.20 測試純函數(shù) 42
2.21 小憩片刻:測試純函數(shù) 43
2.22 解釋:測試純函數(shù) 44
小結(jié) 45

第3章 不可變值 47
3.1 引擎的燃料 48
3.2 不可變性的另一種情況 49
3.3 你會相信這個函數(shù)嗎 50
3.4 可變性是危險的 51
3.5 回顧:說謊的函數(shù)…… 52
3.6 使用副本對抗可變性 53
3.7 小憩片刻:可變性帶來的困擾 54
3.8 解釋:可變性帶來的困擾 55
3.9 引入共享可變狀態(tài) 58
3.10 狀態(tài)對編程能力的影響 59
3.11 處理移動部分 60
3.12 使用FP處理移動部分 61
3.13 Scala中的不可變值 62
3.14 建立對不可變性的直覺 63
3.15 小憩片刻:不可變的
String API 64
3.16 解釋:不可變的String API 65
3.17 等等,這不是更糟糕嗎 66
3.18 純函數(shù)解法解決共享可變狀態(tài)問題 67
3.19 練習(xí)不可變的切分和追加 69
小結(jié) 70

第4章 函數(shù)作為值 71
4.1 將要求實現(xiàn)為函數(shù) 72
4.2 非純函數(shù)和可變值反擊 73
4.3 使用Java Streams對列表進(jìn)行排序 74
4.4 函數(shù)特征標(biāo)記應(yīng)說明全部情況 75
4.5 更改要求 76
4.6 只是在傳遞代碼 77
4.7 使用Java的Function值 78
4.8 使用Function語法處理代碼重復(fù)問題 79
4.9 將用戶定義的函數(shù)作為參數(shù)傳遞 80
4.10 小憩片刻:將函數(shù)作為參數(shù) 81
4.11 解釋:將函數(shù)作為參數(shù) 82
4.12 閱讀函數(shù)式Java的問題 83
4.13 在Scala中傳遞函數(shù) 84
4.14 深入了解sortBy 85
4.15 在Scala中具有函數(shù)參數(shù)的特征標(biāo)記 86
4.16 在Scala中將函數(shù)作為參數(shù)傳遞 87
4.17 練習(xí)函數(shù)傳遞 88
4.18 采用聲明式編程 89
4.19 將函數(shù)傳遞給自定義函數(shù) 90
4.20 小函數(shù)及其職責(zé) 91
4.21 內(nèi)聯(lián)傳遞函數(shù) 92
4.22 小憩片刻:在Scala中傳遞函數(shù) 93
4.23 解釋:在Scala中傳遞函數(shù) 94
4.24 僅通過傳遞函數(shù)還能實現(xiàn)什么功能呢 95
4.25 將函數(shù)應(yīng)用于列表中的每個元素 96
4.26 使用map將函數(shù)應(yīng)用于列表的每個元素 97
4.27 了解map 98
4.28 練習(xí)使用map 99
4.29 學(xué)習(xí)一次,隨處適用 100
4.30 根據(jù)條件返回列表的部分內(nèi)容 101
4.31 使用filter返回列表的部分內(nèi)容 102
4.32 了解filter 103
4.33 練習(xí)filter 104
4.34 迄今為止的旅程…… 105
4.35 避免重復(fù)自己 106
4.36 API是否易于使用 107
4.37 添加一個新參數(shù)不足以解決問題 108
4.38 函數(shù)可以返回函數(shù) 109
4.39 使用可以返回函數(shù)的函數(shù) 110
4.40 函數(shù)就是值 111
4.41 小憩片刻:返回函數(shù) 112
4.42 解釋:返回函數(shù) 113
4.43 設(shè)計函數(shù)式API 114
4.44 函數(shù)式API的迭代設(shè)計 115
4.45 從返回的函數(shù)中返回函數(shù) 116
4.46 如何從返回的函數(shù)中返回函數(shù) 117
4.47 使用返回函數(shù)構(gòu)建的靈活A(yù)PI 118
4.48 在函數(shù)中使用多個參數(shù)列表 119
4.49 使用柯里化 120
4.50 練習(xí)柯里化 121
4.51 通過傳遞函數(shù)值進(jìn)行編程 122
4.52 將許多值縮減為單個值 123
4.53 使用foldLeft將多個值縮減為一個 124
4.54 了解foldLeft 125
4.55 foldLeft用者須知 126
4.56 練習(xí)foldLeft 127
4.57 建模不可變數(shù)據(jù) 128
4.58 使用具有高階函數(shù)的求積類型 129
4.59 內(nèi)聯(lián)函數(shù)的更簡潔語法 130
小結(jié) 131

第II部分 函數(shù)式程序
第5章 順序程序 135
5.1 編寫基于流水線的算法 136
5.2 根據(jù)小模塊構(gòu)建大型程序 137
5.3 命令式解法 138
5.4 flatten和flatMap 139
5.5 使用多個flatMap的實際案例 140
5.6 flatMap和列表大小的更改 141
5.7 小憩片刻:處理由列表組成的列表 142
5.8 解釋:處理由列表組成的列表 143
5.9 連接的flatMap和map 144
5.10 嵌套的flatMap 145
5.11 依賴其他值的值 146
5.12 練習(xí)嵌套的flatMap 147
5.13 更好的嵌套 flatMap 語法 148
5.14 使用for推導(dǎo)式 149
5.15 小憩片刻:flatMap與for推導(dǎo)式 150
5.16 解釋:flatMap與for推導(dǎo)式 151
5.17 了解for推導(dǎo)式 152
5.18 這不是你想要的for 153
5.19 在for推導(dǎo)式內(nèi)部 154
5.20 更復(fù)雜的for推導(dǎo)式 155
5.21 使用for推導(dǎo)式檢查所有組合 156
5.22 過濾技術(shù) 157
5.23 小憩片刻:過濾技術(shù) 158
5.24 解釋:過濾技術(shù) 159
5.25 抽象化 160
5.26 比較map、foldLeft和flatMap 161
5.27 使用Set的for推導(dǎo)式 162
5.28 使用多種類型的for推導(dǎo)式 163
5.29 練習(xí)for推導(dǎo)式 164
5.30 再次定義for推導(dǎo)式 165
5.31 使用非集合類型的for推導(dǎo)式 166
5.32 避免null函數(shù):Option類型 167
5.33 解析為流水線 168
5.34 小憩片刻:使用Option進(jìn)行解析 169
5.35 解釋:使用Option進(jìn)行解析 170
小結(jié) 171

第6章 錯誤處理 173
6.1 從容處理許多不同的錯誤 174
6.2 是否可能處理所有問題 175
6.3 按照播出時長對電視節(jié)目列表進(jìn)行排序 176
6.4 實現(xiàn)排序要求 177
6.5 處理來自外部世界的數(shù)據(jù) 178
6.6 函數(shù)式設(shè)計:利用小代碼塊構(gòu)建 179
6.7 將String解析為不可變對象 180
6.8 解析一個List只是解析一個元素 181
6.9 將String解析為TvShow 182
6.10 如何處理潛在錯誤 183
6.11 返回null是不是一個好辦法 184
6.12 如何更從容地處理潛在錯誤 185
6.13 實現(xiàn)返回Option的函數(shù) 186
6.14 Option強(qiáng)制處理可能的錯誤 187
6.15 基于小代碼塊進(jìn)行構(gòu)建 188
6.16 函數(shù)式設(shè)計是基于小代碼塊進(jìn)行構(gòu)建 189
6.17 編寫一個小而安全的函數(shù),使其返回一個Option 190
6.18 函數(shù)、值和表達(dá)式 192
6.19 練習(xí)返回Option的安全函數(shù) 193
6.20 錯誤如何傳播 194
6.21 值代表錯誤 195
6.22 Option、for推導(dǎo)式和已檢查的異常 196
6.23 已檢查異常怎么樣 197
6.24 條件恢復(fù) 198
6.25 使用命令式風(fēng)格進(jìn)行條件恢復(fù) 199
6.26 使用函數(shù)式的條件恢復(fù) 200
6.27 已檢查異常不可組合,但Option可以 201
6.28 orElse的工作原理 202
6.29 練習(xí)函數(shù)式錯誤處理 203
6.30 即使存在錯誤,仍組合函數(shù) 204
6.31 編譯器提醒需要覆蓋錯誤 205
6.32 編譯錯誤對我們有好處 206
6.33 將由Option組成的List轉(zhuǎn)換為扁平 List 207
6.34 讓編譯器成為我們的向?qū)?208
6.35 不要過于相信編譯器 209
6.36 小憩片刻:錯誤處理策略 210
6.37 解釋:錯誤處理策略 211
6.38 兩種不同的錯誤處理策略 212
6.39 孤注一擲錯誤處理策略 213
6.40 將Option組成的List折疊為一個List的Option 214
6.41 現(xiàn)已知道如何處理多個可能的錯誤 215
6.42 如何知道哪里出錯了 216
6.43 需要在返回值中傳達(dá)錯誤的詳細(xì)信息 217
6.44 使用Either傳達(dá)錯誤詳情 218
6.45 重構(gòu)以使用Either 219
6.46 返回Either而不是Option 220
6.47 練習(xí)返回Either的安全函數(shù) 223
6.48 學(xué)到的Option相關(guān)知識也適用于Either 224
6.49 小憩片刻:使用Either進(jìn)行錯誤處理 225
6.50 解釋:用Either進(jìn)行錯誤處理 226
6.51 使用Option/Either進(jìn)行工作 227
小結(jié) 228

第7章 作為類型的要求 229
7.1 建模數(shù)據(jù)以盡量減少程序員的錯誤 230
7.2 精心建模的數(shù)據(jù)不會說謊 231
7.3 使用已知內(nèi)容(即原始類型)進(jìn)行設(shè)計 232
7.4 使用建模為原始類型的數(shù)據(jù) 233
7.5 小憩片刻:原始類型之苦 234
7.6 解釋:原始類型之苦 235
7.7 使用原始類型建模的問題 236
7.8 使用原始類型加大工作難度 237
7.9 newtype使參數(shù)不被錯放 238
7.10 在數(shù)據(jù)模型中使用newtype 239
7.11 練習(xí)newtype 240
7.12 確保只存在有效數(shù)據(jù)組合 241
7.13 建模數(shù)據(jù)缺失的可能性 242
7.14 模型變化導(dǎo)致邏輯變化 243
7.15 在邏輯中使用建模為Option的數(shù)據(jù) 244
7.16 高階函數(shù)獲勝 245
7.17 可能存在符合要求的高階函數(shù) 246
7.18 小憩片刻:forall/exists/contains 247
7.19 解釋:forall/exists/contains 248
7.20 將概念耦合在單個求積類型內(nèi) 249
7.21 建模有限可能性 250
7.22 使用求和類型 251
7.23 使用求和類型改善模型 252
7.24 使用“求和類型 求積類型”的組合 253
7.25 求積類型 求和類型=代數(shù)數(shù)據(jù)類型 254
7.26 在行為(函數(shù))中使用基于ADT的模型 255
7.27 使用模式匹配解構(gòu)ADT 256
7.28 重復(fù)和DRY 257
7.29 練習(xí)模式匹配 258
7.30 實際應(yīng)用中的newtype、ADT和模式匹配 259
7.31 如何繼承呢 260
7.32 小憩片刻:函數(shù)式數(shù)據(jù)設(shè)計 261
7.33 解釋:函數(shù)式數(shù)據(jù)設(shè)計 262
7.34 建模行為 263
7.35 將行為建模為數(shù)據(jù) 264
7.36 使用基于ADT的參數(shù)實現(xiàn)函數(shù) 265
7.37 小憩片刻:設(shè)計與可維護(hù)性 266
7.38 解釋:設(shè)計與可維護(hù)性 267
小結(jié) 268

第8章 作為值的IO 269
8.1 與外界交流 270
8.2 與外部 API 集成 271
8.3 具有副作用的IO操作的屬性 272
8.4 帶有副作用的IO代碼的命令式解決方案 273
8.5 命令式IO方案存在許多問題 274
8.6 能通過FP完善方案嗎 275
8.7 執(zhí)行IO與使用IO的結(jié)果 276
8.8 命令式處理IO 277
8.9 作為IO值的計算 278
8.10 IO 值 279
8.11 實際運(yùn)行中的IO值 280
8.12 將非純性排出 281
8.13 使用從兩個IO操作獲取的值 282
8.14 將兩個IO值組合成單個IO值 283
8.15 練習(xí)創(chuàng)建和組合IO值 284
8.16 僅使用值來解決問題 285
8.17 IO類型是病毒性的 286
8.18 小憩片刻:使用值 287
8.19 解釋:使用值 288
8.20 向函數(shù)式IO前進(jìn) 289
8.21 如何處理IO故障 290
8.22 運(yùn)行由IO描述的程序可能會失敗 291
8.23 記得orElse嗎 292
8.24 惰性求值和及早求值 293
8.25 使用IO.orElse實現(xiàn)恢復(fù)策略 294
8.26 使用orElse和pure實現(xiàn)回退 295
8.27 練習(xí)IO值的故障恢復(fù) 296
8.28 應(yīng)該在哪里處理潛在的故障 297
8.29 具有故障處理的函數(shù)IO 298
8.30 純函數(shù)不會說謊,即使在
不安全的世界中也是如此 299
8.31 函數(shù)式架構(gòu) 300
8.32 使用IO存儲數(shù)據(jù) 301
8.33 小憩片刻:使用IO存儲數(shù)據(jù) 304
8.34 解釋:使用IO存儲數(shù)據(jù) 305
8.35 將一切視為值 306
8.36 將重試作為值處理 307
8.37 將未知數(shù)量的API調(diào)用視為值 309
8.38 練習(xí):培養(yǎng)函數(shù)特征標(biāo)記的直覺 311
小結(jié) 312

第9章 作為值的流 313
9.1 無限超越 314
9.2 處理未知數(shù)量的值 315
9.3 處理外部非純的API調(diào)用(再次) 316
9.4 函數(shù)式設(shè)計方案 317
9.5 不可變映射 318
9.6 練習(xí)不可變映射 319
9.7 應(yīng)該進(jìn)行多少IO調(diào)用 320
9.8 自下而上的設(shè)計 321
9.9 高級列表操作 322
9.10 引入元組 323
9.11 zip和drop 324
9.12 元組模式匹配 325
9.13 小憩片刻:使用映射和元組 326
9.14 解釋:使用映射和元組 327
9.15 函數(shù)拼圖 328
9.16 跟蹤自下而上設(shè)計中的類型 329
9.17 原型制作和死胡同 330
9.18 遞歸函數(shù) 331
9.19 無限和惰性 332
9.20 遞歸函數(shù)結(jié)構(gòu) 333
9.21 處理未來的空值(使用遞歸函數(shù)) 334
9.22 無限遞歸調(diào)用的有用性 335
9.23 小憩片刻:遞歸和無限 336
9.24 解釋:遞歸和無限 337
9.25 使用遞歸創(chuàng)建不同的IO程序 338
9.26 使用遞歸進(jìn)行任意數(shù)量的調(diào)用 339
9.27 遞歸版本的問題 340
9.28 引入數(shù)據(jù)流 341
9.29 命令式語言中的Stream 342
9.30 按需生成值 343
9.31 流處理、生產(chǎn)者和消費(fèi)者 344
9.32 流和IO 345
9.33 函數(shù)式Stream 346
9.34 FP中的流是值 347
9.35 流是遞歸值 348
9.36 原始操作和組合器 349
9.37 基于IO值的流 350
9.38 基于IO值的無限流 351
9.39 為副作用而執(zhí)行 352
9.40 練習(xí)流操作 353
9.41 利用流的功能 354
9.42 API調(diào)用的無限流 355
9.43 在流中處理IO故障 356
9.44 分離的關(guān)注點(diǎn) 357
9.45 滑動窗口 358
9.46 等待IO調(diào)用 360
9.47 組合流 361
9.48 使用基于流的方案的好處 362
小結(jié) 363

第10章 并發(fā)程序 365
10.1 無處不在的線程 366
10.2 聲明式并發(fā) 367
10.3 順序與并發(fā) 368
10.4 小憩片刻:順序性思考 369
10.5 解釋:順序性思考 370
10.6 需要進(jìn)行批處理 371
10.7 批處理實現(xiàn) 372
10.8 并發(fā)世界 373
10.9 并發(fā)狀態(tài) 374
10.10 命令式并發(fā) 375
10.11 原子引用 377
10.12 引入Ref 378
10.13 更新Ref值 379
10.14 使用Ref值 380
10.15 讓一切并行運(yùn)行 381
10.16 parSequence的實際應(yīng)用 382
10.17 練習(xí)并發(fā)IO 384
10.18 建模并發(fā)性 385
10.19 使用Ref和Fiber進(jìn)行編碼 386
10.20 無限運(yùn)行的IO 388
10.21 小憩片刻:并發(fā)性思考 389
10.22 解釋:并發(fā)性思考 390
10.23 需要異步性 391
10.24 為異步訪問做準(zhǔn)備 392
10.25 設(shè)計函數(shù)式異步程序 393
10.26 手動管理Fiber 394
10.27 編寫函數(shù)式異步程序 395
小結(jié) 396

第III部分 應(yīng)用函數(shù)式編程
第11章 設(shè)計函數(shù)式程序 399
11.1 有效、準(zhǔn)確、快速 400
11.2 使用不可變值建模 401
11.3 業(yè)務(wù)領(lǐng)域建模和FP 402
11.4 數(shù)據(jù)訪問建模 403
11.5 函數(shù)包 404
11.6 作為純函數(shù)的業(yè)務(wù)邏輯 405
11.7 分離真正的數(shù)據(jù)訪問問題 406
11.8 使用命令式庫和IO與API集成 407
11.9 遵循設(shè)計 410
11.10 將輸入操作作為IO值實現(xiàn) 411
11.11 將庫IO與其他關(guān)注點(diǎn)分離 413
11.12 柯里化和控制反轉(zhuǎn) 414
11.13 作為值的函數(shù) 415
11.14 串聯(lián)知識 416
11.15 我們做到了 417
11.16 使業(yè)務(wù)邏輯正確 418
11.17 資源泄漏 419
11.18 處理資源 420
11.19 使用Resource值 421
11.20 我們做對了 422
11.21 小憩片刻:加快速度 423
11.22 解釋:加快速度 424
小結(jié) 425

第12章 測試函數(shù)式程序 427
12.1 你對其進(jìn)行測試嗎 428
12.2 測試只是函數(shù) 429
12.3 選擇要測試的函數(shù) 430
12.4 提供示例進(jìn)行測試 431
12.5 通過示例練習(xí)測試 432
12.6 生成好示例 433
12.7 生成屬性 434
12.8 基于屬性的測試 435
12.9 提供屬性進(jìn)行測試 436
12.10 通過傳遞函數(shù)來委派工作 437
12.11 了解基于屬性測試的失敗原因 438
12.12 測試錯誤還是存在錯誤 439
12.13 自定義生成器 440
12.14 使用自定義生成器 441
12.15 以可讀的方式測試更復(fù)雜的場景 442
12.16 查找并修復(fù)實現(xiàn)中的錯誤 443
12.17 小憩片刻:基于屬性的測試 444
12.18 解釋:基于屬性的測試 445
12.19 屬性和示例 446
12.20 要求范圍 447
12.21 測試具有副作用的要求 448
12.22 確定工作所需的正確測試 449
12.23 數(shù)據(jù)使用測試 450
12.24 練習(xí)使用IO存根外部服務(wù) 452
12.25 測試和設(shè)計 453
12.26 服務(wù)集成測試 454
12.27 本地服務(wù)器作為集成測試中的資源 455
12.28 編寫單獨(dú)集成測試 456
12.29 與服務(wù)集成是單一職責(zé) 457
12.30 小憩片刻:編寫集成測試 458
12.31 解釋:編寫集成測試 459
12.32 集成測試耗時更長 460
12.33 基于屬性的集成測試 461
12.34 選擇正確的測試方案 462
12.35 測試驅(qū)動開發(fā) 463
12.36 為不存在的功能編寫測試 464
12.37 紅綠重構(gòu) 465
12.38 讓測試通過 466
12.39 增加紅色測試 467
12.40 *后的TDD迭代 468
小結(jié) 469
結(jié)語 470

——以下內(nèi)容可通過掃描封底二維碼下載——
附錄A Scala 速查表 471
附錄B 函數(shù)式重點(diǎn) 477

展開全部

函數(shù)式編程圖解 作者簡介

Micha? P?achta是一位經(jīng)驗豐富的軟件工程師,也活躍于函數(shù)式編程社區(qū)。他經(jīng)常在技術(shù)會議上發(fā)言,主持研討會,組織聚會,并在博客上發(fā)表文章,探討如何創(chuàng)建可維護(hù)的軟件。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網(wǎng)
在線客服
三级一区在线视频先锋_丁香另类激情小说_中文字幕一区二区三_一本一道久久a久久精品综合蜜臀_一区二区三区四区国产精品_日韩**一区毛片_在线观看日韩电影_1000部国产精品成人观看_免费不卡在线视频_亚洲国产日日夜夜_国产亚洲精品福利_亚洲精品一区二区三区在线观看_欧美美女一区二区三区_日韩欧美色电影_欧美aaa在线_久久这里只有精品6
亚洲男同1069视频| 国产精品美女久久久久av福利| 日本一区免费视频| 欧美一区二区三级| 91精品国产麻豆国产自产在线| 欧美日韩视频一区二区| 欧美图区在线视频| 欧美一区二区三区四区视频| 日韩一区二区三区视频在线| 日韩视频免费观看高清在线视频| 国产a精品视频| 国产精品亚洲午夜一区二区三区 | 欧洲精品在线观看| 欧美日韩在线播放三区四区| 欧美日韩国产高清一区二区三区| 亚洲亚洲精品三区日韩精品在线视频 | 国产精品久久久久影视| 亚洲日本成人在线观看| 视频在线观看一区二区三区| 国产一区二区久久| http;//www.99re视频| 蜜桃传媒视频麻豆第一区免费观看 | 欧美一区二区三区四区在线观看地址| 日本一区不卡| 在线日韩一区二区| 精品免费国产一区二区三区四区| 日本一区二区不卡视频| 亚洲大片精品永久免费| 国产一区二区三区久久久| 91视频国产观看| 亚洲不卡中文字幕| 欧美一区二区三区四区高清| 国产精品国产三级国产aⅴ入口| 亚洲成人av电影在线| 国产成人av电影在线播放| 精品久久精品久久| 欧美久久久久久久久| 国产精品九色蝌蚪自拍| 老司机精品视频一区二区三区| 97se狠狠狠综合亚洲狠狠| 亚洲成人18| 久久亚洲精华国产精华液 | 国产欧美一区二区三区沐欲| 亚洲自拍都市欧美小说| 国产老肥熟一区二区三区| 久久国产一区| 欧美一区二区三区在线| 国产精品黄色在线观看| 九九九精品视频| 久久综合入口| 精品日本一线二线三线不卡| 一区二区三区四区高清精品免费观看| 国产九色精品成人porny| 久久人人爽爽人人爽人人片av| 欧美性大战xxxxx久久久| 国产精品人妖ts系列视频| 国内精品在线播放| 欧美日韩一区二区三| 日韩午夜激情电影| 亚洲福利国产精品| 成人丝袜高跟foot| 色婷婷综合久久久中文字幕| 国产精品妹子av| 成人午夜私人影院| 在线观看不卡视频| 一区二区三区四区国产精品| 99re热视频精品| 欧美人成免费网站| 亚洲已满18点击进入久久| 99精品热视频| 91精品国产色综合久久ai换脸| 一区二区三区在线播| www久久99| 日韩美女视频一区二区在线观看| 日日夜夜免费精品| 热re99久久精品国99热蜜月| 国产精品网站在线观看| av欧美精品.com| 欧美一级理论片| 国产一区在线精品| 欧美中文一区二区三区| 婷婷夜色潮精品综合在线| 精品一区二区视频| 国产精品视频一区二区三区不卡| eeuss鲁片一区二区三区| 欧美精品v国产精品v日韩精品| 三级久久三级久久| 亚洲精品一区二区三区蜜桃久| 亚洲乱码国产乱码精品精可以看| 99精品在线观看视频| 欧美成人女星排名| 成人高清视频在线观看| 这里只有精品电影| 国产黄色91视频| 91精品国产综合久久香蕉麻豆| 久久精品国产99| 欧美三级欧美一级| 韩日精品视频一区| 欧美三级视频在线播放| 蜜臀久久99精品久久久画质超高清| 亚洲一区三区电影在线观看| 亚洲高清一区二区三区| 日本一区二区在线视频观看| 一区二区三区丝袜| 日韩亚洲视频在线| 日韩精品五月天| 在线看不卡av| 国模大尺度一区二区三区| 欧美日本国产视频| 成人网在线播放| 久久精品无码一区二区三区| 91麻豆国产福利精品| 欧美国产精品中文字幕| 国产一区二区中文字幕免费看| 国产精品不卡一区| 日韩精品av一区二区三区| 午夜伦欧美伦电影理论片| 亚洲成人a**址| 麻豆国产精品一区二区三区| 欧美日韩国产一级二级| 成人蜜臀av电影| 欧美国产激情二区三区| 欧美精品成人一区二区在线观看| 亚洲图片欧美综合| 欧美私模裸体表演在线观看| 成人亚洲精品久久久久软件| 亚洲国产成人自拍| 亚洲视频电影| 麻豆精品一区二区综合av| 日韩一区二区麻豆国产| 国产欧美日韩一区| 日韩精品一级中文字幕精品视频免费观看| 色视频欧美一区二区三区| 国产精品亚洲视频| 久久精品一区八戒影视| 日韩精品一区二区三区色偷偷| 久久国产欧美日韩精品| 精品国产免费人成电影在线观看四季 | 成人精品视频网站| 国产精品沙发午睡系列990531| 狼狼综合久久久久综合网| 日本不卡的三区四区五区| 精品少妇一区二区三区在线播放| 韩国成人动漫在线观看| 美美哒免费高清在线观看视频一区二区| 欧美一级欧美三级在线观看| 精品日本一区二区三区| 麻豆精品一区二区综合av| 久久久亚洲精华液精华液精华液| 欧美18视频| 国产激情一区二区三区桃花岛亚洲| 日本一区二区综合亚洲| 在线精品日韩| 波多野结衣精品在线| 亚洲一区二区影院| 日韩精品一区二区三区视频在线观看| 国产精品一区二区av| 欧美96一区二区免费视频| 久久久久久久综合| 杨幂一区欧美专区| 91麻豆国产福利在线观看| 五月天一区二区| 久久久久久麻豆| 在线视频国内一区二区| 国产中文一区二区| 国产91精品在线观看| 亚洲另类中文字| 精品理论电影在线观看| 在线观看成人av| 国产偷国产偷亚洲高清97cao| 狠狠久久亚洲欧美| 亚洲午夜三级在线| 精品女同一区二区| 欧美中文字幕一区| 欧美午夜视频在线| 91在线短视频| 国产大片一区二区| 亚洲电影一级黄| 中文字幕一区二区三区不卡| 8v天堂国产在线一区二区| 亚洲欧洲久久| 国产一区二区三区无遮挡| 国产91高潮流白浆在线麻豆| 三级精品在线观看| 亚洲伦理在线精品| 日本一区二区三区高清不卡| 欧美视频精品在线观看| 鲁丝一区二区三区免费| 99国产在线观看| 成人综合在线观看| 久久成人免费网站| 亚洲成精国产精品女| 亚洲色图欧美偷拍| 国产欧美精品区一区二区三区 | 成人综合婷婷国产精品久久蜜臀| 午夜精品一区二区三区电影天堂| 国产精品久久99| 国产女人18水真多18精品一级做| 91精品国产aⅴ一区二区| 在线免费亚洲电影|