-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
優雅的Ruby 版權信息
- ISBN:9787568024891
- 條形碼:9787568024891 ; 978-7-5680-2489-1
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
優雅的Ruby 本書特色
本書總結了32條Ruby編程技巧,幫助讀者寫出清晰、優雅、穩定的Ruby代碼。作者Avdi Grimm主張Ruby方法應該像故事一樣易于閱讀。他將Ruby方法分成輸入處理(Collecting Input)、功能實現(Performing Work)、輸出處理(Delivering Output)、失敗處理(Handling Failures)四個部分,針對每個部分的特點歸納實用的編程模式,并配合豐富的實例講解,讓讀者寫出優雅實用的Ruby代碼,找回Ruby編程的樂趣。
優雅的Ruby 內容簡介
《優雅的Ruby》這本書總結了32條Ruby編程模式, 教讀者寫出優雅、穩定的Ruby代碼。主要內容包括: 引言 ; 功能實現 ; 收集輸入 ; 輸出處理 ; 失敗處理 ; 為了優雅重構等。
優雅的Ruby 目錄
1.1 當Ruby遭遇現實 2
1.2 自信優雅的代碼 2
1.3 好的故事,糟糕的講述 3
1.4 像寫故事一樣寫代碼 4
1.5 方法的四個部分 4
1.6 本書組織結構 8
第2章 功能實現 11
2.1 發送有效的消息 12
2.2 導入交易記錄 13
2.3 識別消息 14
2.4 識別角色 14
2.5 避免馬蓋先主義 17
2.6 讓語言為系統服務 17
2.7 像鴨子一樣叫 18
2.8 馴養鴨群 19
第3章 收集輸入 21
3.1 輸入處理概述 21
3.1.1 間接輸入 23
3.1.2 從角色到對象 26
3.1.3 保護邊界而非內部 27
3.2 使用內置的類型轉換協議 28
3.2.1 適用場景 28
3.2.2 摘要 28
3.2.3 基本原理 28
3.2.4 示例:宣布獲獎結果 28
3.2.5 示例:Emacs配置文件 30
3.2.6 標準類型轉換方法列表 32
3.2.7 顯式轉換和隱式轉換 33
3.2.8 明確提出參數要求 37
3.2.9 小結 39
3.3 有條件地使用類型轉換方法 40
3.3.1 使用場景 40
3.3.2 摘要 40
3.3.3 基本原理 40
3.3.4 示例:打開文件 40
3.3.5 違反鴨子類型的唯一特例 42
3.3.6 小結 45
3.4 自定義類型轉換協議 46
3.4.1 使用場景 46
3.4.2 摘要 46
3.4.3 基本原理 46
3.4.4 示例:接收一個點或一對坐標 46
3.4.5 小結 48
3.5 定義自定義類型的轉換協議 49
3.5.1 使用場景 49
3.5.2 摘要 49
3.5.3 基本原理 49
3.5.4 示例:將英尺轉換為米 49
3.5.5 小結 52
3.6 利用內置強制類型轉換方法 53
3.6.1 使用場景 53
3.6.2 摘要 53
3.6.3 基本原理 53
3.6.4 示例:格式化打印數字 53
3.6.5 Hash.[] 57
3.6.6 小結 57
3.7 用Array()將輸入數組化 58
3.7.1 使用場景 58
3.7.2 摘要 58
3.7.3 基本原理 58
3.7.4 示例:可變參數 58
3.7.5 小結 60
3.8 自定義強制類型轉換方法 61
3.8.1 使用場景 61
3.8.2 摘要 61
3.8.3 基本原理 61
3.8.4 示例:應用于2D圖形中的強制類型轉換方法 62
3.8.5 關于module_function 63
3.8.6 結合類型轉換協議和強制類型轉換方法 64
3.8.7 用Lambdas表達式作case分支 66
3.8.8 小結 67
3.9 用自定義類替換類字符串類型 68
3.9.1 使用場景 68
3.9.2 摘要 68
3.9.3 基本原理 68
3.9.4 示例:紅綠燈的狀態問題 69
3.9.5 小結 77
3.10 用適配器裝飾輸入 78
3.10.1 使用場景 78
3.10.2 摘要 78
3.10.3 基本原理 78
3.10.4 示例:將日志寫進IRC 78
3.10.5 小結 82
3.11 利用透明適配器逐步消除類型依賴 83
3.11.1 適用場景 83
3.11.2 摘要 83
3.11.3 基本原理 83
3.11.4 示例:再探將日志寫進IRC的示例 83
3.11.5 小結 86
3.12 利用先決條件排除非法輸入 87
3.12.1 使用場景 87
3.12.2 摘要 87
3.12.3 基本原理 87
3.12.4 示例:員工入職日期 87
3.12.5 “可執行文檔” 91
3.12.6 小結 91
3.13 利用#fetch確保Hash鍵的存在性 92
3.13.1 使用場景 92
3.13.2 摘要 92
3.13.3 基本原理 92
3.13.4 示例:useradd(8)包裝器 92
3.13.5 嘗試#fetch 95
3.13.6 自定義#fetch 98
3.13.7 小結 99
3.14 利用#fetch提供默認參數 100
3.14.1 使用場景 100
3.14.2 摘要 100
3.14.3 基本原理 100
3.14.4 示例:可選的logger參數 100
3.14.5 可重用的#fetch代碼塊 104
3.14.6 雙參數#fetch 106
3.14.7 小結 107
3.15 用斷言驗證假設 108
3.15.1 使用場景 108
3.15.2 摘要 108
3.15.3 基本原理 108
3.15.4 示例:導入銀行記錄 108
3.15.5 小結 113
3.16 用衛語句來處理特殊場景 114
3.16.1 使用場景 114
3.16.2 摘要 114
3.16.3 基本原理 114
3.16.4 示例:“靜音模式”標志 114
3.16.5 提前返回 116
3.16.6 小結 117
3.17 用對象表示特殊場景 118
3.17.1 使用場景 118
3.17.2 摘要 118
3.17.3 基本原理 118
3.17.4 示例:游客用戶 118
3.17.5 用特例對象來表示當前用戶 121
3.17.6 小步改進 126
3.17.7 保持特例對象和普通對象的同步 128
3.17.8 小結 129
3.18 用空對象表示不做事的情況 130
3.18.1 使用場景 130
3.18.2 摘要 130
3.18.3 基本原理 130
3.18.4 示例:輸出日志到shell命令行 131
3.18.5 通用空對象 133
3.18.6 穿越事界 134
3.18.7 讓空對象返回false 138
3.18.8 小結 140
3.19 用良性值替代nil 142
3.19.1 使用場景 142
3.19.2 摘要 142
3.19.3 基本原理 142
3.19.4 示例:顯示會員地理位置信息 142
3.19.5 無害就好 145
3.19.6 小結 146
3.20 用symbols做占位符 147
3.20.1 使用場景 147
3.20.2 摘要 147
3.20.3 基本原理 147
3.20.4 示例:web service可選認證 147
3.20.5 都是nil惹的禍 149
3.20.6 帶語義的占位符 152
3.20.7 小結 154
3.21 將參數封裝到參數對象中 155
3.21.1 使用場景 155
3.21.2 摘要 155
3.21.3 基本原理 155
3.21.4 參數對象回顧 155
3.21.5 添加可選參數 159
3.21.6 小結 163
3.22 提取參數構建器 164
3.22.1 使用場景 164
3.22.2 摘要 164
3.22.3 基本原理 164
3.22.4 示例:方便的繪點API 164
3.22.5 Net/HTTP vs. Faraday 168
3.22.6 提取參數Builder 170
3.22.7 小結 172
第4章 輸出處理 173
4.1 用全函數作為方法返回值 174
4.1.1 使用場景 174
4.1.2 摘要 174
4.1.3 基本原理 174
4.1.4 示例:單詞搜索 174
4.1.5 小結 178
4.2 執行回調而非返回狀態 179
4.2.1 使用場景 179
4.2.2 摘要 179
4.2.3 基本原理 179
4.2.4 示例 179
4.2.5 小結 182
4.3 用良性值表示失敗 183
4.3.1 使用場景 183
4.3.2 摘要 183
4.3.3 基本原理 183
4.3.4 示例:在側邊欄上顯示推文 183
4.3.5 小結 185
4.4 用特例對象表示失敗 186
4.4.1 使用場景 186
4.4.2 摘要 186
4.4.3 基本原理 186
4.4.4 示例:游客用戶 186
4.4.5 小結 187
4.5 返回狀態對象 188
4.5.1 使用場景 188
4.5.2 摘要 188
4.5.3 基本原理 188
4.5.4 示例:記錄導入結果 188
4.5.5 小結 192
4.6 將狀態對象傳給回調 193
4.6.1 使用場景 193
4.6.2 摘要 193
4.6.3 基本原理 193
4.6.4 示例:將導入結果傳給回調 193
4.6.5 測試狀態對象 198
4.6.6 小結 199
4.7 用throw提前終止執行 200
4.7.1 使用場景 200
4.7.2 摘要 200
4.7.3 示例:提前終止HTML文檔解析 200
4.7.4 小結 205
第5章 失敗處理 207
5.1 優先使用頂層異常捕獲 208
5.1.1 使用場景 208
5.1.2 摘要 208
5.1.3 基本原理 208
5.1.4 示例 208
5.1.5 小結 209
5.2 用受檢方法封裝危險操作 210
5.2.1 使用場景 210
5.2.2 摘要 210
5.2.3 基本原理 210
5.2.4 示例 210
5.2.5 演進成Adapters 212
5.2.6 小結 212
5.3 使用護衛方法 213
5.3.1 使用場景 213
5.3.2 摘要 213
5.3.3 基本原理 213
5.3.4 示例:子進程狀態檢測 213
5.3.5 小結 216
第6章 為了優雅重構 217
6.1 MetricFu 218
6.1.1 Location 218
6.1.2 HotspotAnalyzedProblems 222
6.1.3 排名 225
6.2 Stringer 227
第7章 后記 231
優雅的Ruby 相關資料
《優雅的Ruby》讓復雜的代碼變得容易編寫了。
——Kevin Sj?berg
如果你想找回Ruby編程的樂趣,這是zui棒的一本書。
——Matt Rogers
我寫了30年代碼,《優雅的Ruby》仍然讓我受益匪淺。
——Jeff Dickey
學到很多重構代碼的技巧。
——月亮便士,豆瓣網友
優雅的Ruby 作者簡介
Avdi Grimm是ShipRise.com和RubyTapas.com的創始人,有著十幾年Ruby編程經驗,是Ruby程序界的領軍人物。他目前與妻子居住在美國賓夕法尼亞南部。
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
【精裝繪本】畫給孩子的中國神話
- >
龍榆生:詞曲概論/大家小書
- >
伊索寓言-世界文學名著典藏-全譯本
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
二體千字文
- >
名家帶你讀魯迅:故事新編