新到貨2本75折
圖靈程序設計叢書:代碼的未來

圖靈程序設計叢書:代碼的未來

  • 定價:474
  • 優惠價:87412
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

是Ruby之父松本行弘的又一力作。作者對雲計算、大數據時代下的各種編程語言以及相關技術進行了剖析,並對編程語言的未來發展趨勢做出預測,內容涉及Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB、摩爾定律、編程語言、多核、NoSQL等當今備受關注的話題。

《代碼的未來》面向各層次程序設計人員和編程愛好者,也可供相關技術人員參考。

松本行弘(Yukihiro Matsumoto),Ruby語言發明者,亦是亞洲首屈一指的編程語言發明者。現兼任網絡應用通信研究所(NaCl)研究員、樂天技術研究所研究員、Heroku首席架構師等。昵稱「Matz」。討厭東京,喜歡溫泉。
 

目錄

第一章 編程的時間和空間
1.1 編程的本質 3
編程的本質是思考 4
創造世界的樂趣 4
快速提高的性能改變了社會 5
以不變應萬變 8
摩爾定律的局限 9
社會變化與編程 10
1.2 未來預測 13
科學的未來預測 14
IT未來預測 14
極限未來預測 16
從價格看未來 16
從性能看未來 17
從容量看未來 18
從帶寬看未來 19
小結 20

第二章 編程語言的過去、現在和未來
2.1 編程語言的世界 23
被歷史埋沒的先驅 25
編程語言的歷史 26
編程語言的進化方向 30
未來的編程語言 32
20年后的編程語言 34
學生們的想象 34
2.2 DSL(特定領域語言) 36
外部DSL 37
內部DSL 38
DSL的優勢 39
DSL的定義 39
適合內部DSL的語言 40
外部DSL實例 42
DSL設計的構成要素 43
Sinatra 46
小結 47
2.3 元編程 48
Meta,Reflection 48
類對象 51
類的操作 52
Lisp 53
數據和程序 54
Lisp程序 56
宏 56
宏的功與過 57
元編程的可能性與危險性 59
小結 60
2.4 內存管理 61
看似無限的內存 61
GC的三種基本方式 62
術語定義 62
標記清除方式 63
復制收集方式 64
引用計數方式 65
引用計數方式的缺點 65
進一步改良的應用方式 66
分代回收 66
對來自老生代的引用進行記錄 67
增量回收 68
並行回收 69
GC大統一理論 69
2.5 異常處理 71
「一定沒問題的」 71
用特殊返回值表示錯誤 72
容易忽略錯誤處理 72
Ruby中的異常處理 73
產生異常 74
更高級的異常處理 75
Ruby中的后處理保證 76
其他語言中的異常處理 77
Java的檢查型異常 77
Icon的異常和真假值 78
Eiffel的DesignbyContract 80
異常與錯誤值 80
小結 81
2.6 閉包 82
函數對象 82
高階函數 83
用函數參數提高通用性 84
函數指針的局限 85
作用域:變量可見范圍 87
生存周期:變量的存在范圍 88
閉包與面向對象 89
Ruby的函數對象 89
Ruby與JavaScript的區別 90
Lisp—1與Lisp—2 91

第三章 編程語言的新潮流
3.1 語言的設計 97
客戶端與服務器端 97
向服務器端華麗轉身 98
在服務器端獲得成功的四大理由 99
客戶端的JavaScript 100
性能顯著提升 101
服務器端的Ruby 102
RubyonRails帶來的飛躍 102
服務器端的Go 103
靜態與動態 104
動態運行模式 105
何謂類型 105
靜態類型的優點 106
動態類型的優點 106
有鴨子樣的就是鴨子 107
StructuralSubtyping 108
小結 108
3.2 Go 109
New(新的) 109
Experimental(實驗性的) 109
Concurrent(並發的) 110
Garbage—collected(帶垃圾回收的) 110
Systems(系統) 111
Go的創造者們 111
HelloWorld 112
Go的控制結構 113
類型聲明 116
無繼承式面向對象 118
多值與多重賦值 120
並發編程 122
小結 124
3.3 Dart 126
為什麼要推出Dart? 126
Dart的設計目標 129
代碼示例 130
Dart的特征 132
基於類的對象系統 132
非強制性靜態類型 133
Dart的未來 134
3.4 CoffeeScript 135
最普及的語言 135
被誤解最多的語言 135
顯著高速化的語言 136
對JavaScript的不滿 138
CoffeeScript 138
安裝方法 139
聲明和作用域 139
分號和代碼塊 141
省略記法 142
字符串 143
數組和循環 143
類 145
小結 146
3.5 Lua 148
示例程序 149
數據類型 149
函數 150
表 150
元表 151
方法調用的實現 153
基於原型編程 155
和Ruby的比較(語言篇) 157
嵌入式語言Lua 157
和Ruby的比較(實現篇) 158
嵌入式Ruby 159

第四章 雲計算時代的編程
4.1 可擴展性 163
信息的尺度感 163
大量數據的查找 164
二分法查找 165
散列表 167
布隆過濾器 169
一台計算機的極限 170
DHT(分布式散列表) 171
Roma 172
MapReduce 173
小結 174
4.2 C10K問題 175
何為C10K問題 175
C10K問題所引發的「想當然」 177
使用epoll功能 180
使用libev框架 181
使用EventMachine 183
小結 185
4.3 HashFold 186
HashFold庫的實現(Level1) 187
運用多核的必要性 190
目前的Ruby實現所存在的問題 191
通過進程來實現HashFold(Level2) 191
抖動 193
運用進程池的HashFold(Level3) 194
小結 197
4.4 進程間通信 198
進程與線程 198
同一台計算機上的進程間通信 199
TCP/IP協議 201
用C語言進行套接字編程 202
用Ruby進行套接字編程 204
Ruby的套接字功能 205
用Ruby實現網絡服務器 208
小結 209
4.5 Rack與Unicorn 210
Rack中間件 211
應用程序服務器的問題 212
Unicorn的架構 215
Unicorn的解決方案 215
性能 219
策略 220
小結 221

第五章 支撐大數據的數據存儲技術
5.1 鍵—值存儲 225
Hash類 225
DBM類 226
數據庫的ACID特性 226
CAP原理 227
CAP解決方案——BASE 228
不能舍棄可用性 229
大規模環境下的鍵—值存儲 230
訪問鍵—值存儲 230
鍵—值存儲的節點處理 231
存儲器 232
寫入和讀取 233
節點追加 233
故障應對 233
終止處理 235
其他機制 235
性能與應用實例 236
小結 236
5.2 NoSQL 237
RDB的極限 237
NoSQL數據庫的解決方案 238
形形色色的NoSQL數據庫 239
面向文檔數據庫 240
MongoDB的安裝 241
啟動數據庫服務器 243
MongoDB的數據庫結構 244
數據的插入和查詢 244
用JavaScript進行查詢 245
高級查詢 246
數據的更新和刪除 249
樂觀並發控制 250
5.3 用Ruby來操作MongoDB 251
使用Ruby驅動 251
對數據庫進行操作 253
數據的插入 253
數據的查詢 253
高級查詢 254
find方法的選項 256
原子操作 257
ActiveRecord 259
ODMapper 260
5.4 SQL數據庫的反擊 264
「雲」的定義 264
SQL數據庫的極限 264
存儲引擎Spider 265
SQL數據庫之父的反駁 265
SQL數據庫VoltDB 268
VoltDB的架構 269
VoltDB中的編程 270
HelloVoltDB! 271
性能測試 273
小結 275
5.5 memcached和它的伙伴們 276
用於高速訪問的緩存 276
memcached 277
示例程序 278
對memcached的不滿 279
memcached替代服務器 280
另一種鍵—值存儲Redis 282
Redis的數據類型 284
Redis的命令與示例 285
小結 289

第六章 多核時代的編程
6.1 摩爾定律 293
呈幾何級數增長 293
摩爾定律的內涵 294
摩爾定律的結果 295
摩爾定律所帶來的可能性 296
為了提高性能 297
摩爾定律的極限 302
超越極限 303
不再有免費的午餐 304
6.2 UNIX管道 305
管道編程 306
多核時代的管道 308
xargs——另一種運用核心的方式 309
注意瓶頸 311
阿姆達爾定律 311
多核編譯 312
ccache 313
distcc 313
編譯性能測試 314
小結 315
6.3 非阻塞I/O 316
何為非阻塞I/O 316
使用read(2)的方法 317
邊沿觸發與電平觸發 319
使用read(2)+select的方法 319
使用read+O_NONBLOCK標志 321
Ruby的非阻塞I/O 322
使用aio_read的方法 323
6.4 node.js 330
減負 330
拖延 331
委派 332
非阻塞編程 333
node.js框架 333
事件驅動編程 334
事件循環的利弊 335
node.js編程 335
node.js網絡編程 337
node.js回調風格 339
node.js的優越性 340
EventMachine與Rev 341
6.5 ZeroMQ 342
多CPU的必要性 342
阿姆達爾定律 343
多CPU的運用方法 343
進程間通信 345
管道 345
SysVIPC 346
套接字 347
UNIX套接字 349
ZeroMQ 349
ZeroMQ的連接模型 350
ZeroMQ的安裝 352
ZeroMQ示例程序 352
小結 354
版權聲明 356
 

詳細資料

  • ISBN:9787115317513
  • 規格:355頁 / 普通級 / 1-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 用一代人的努力終結氣候危機《再生》|自然科普展7折起
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 888現折88
  • 分寸與好運
  • 終結氣候危機