代碼的未來
本文關(guān)鍵詞:代碼的未來,由筆耕文化傳播整理發(fā)布。
《代碼的未來》
基本信息
作者: (日)松本行弘
譯者: 周自恒
叢書名: 圖靈程序設(shè)計(jì)叢書
出版社:人民郵電出版社
ISBN:9787115317513
上架時(shí)間:2013-5-14
出版日期:2013 年5月
開本:16開
頁碼:1
版次:1-1
所屬分類:計(jì)算機(jī)
更多關(guān)于 》》》《代碼的未來》
內(nèi)容簡介
計(jì)算機(jī)書籍
《代碼的未來》是ruby 之父松本行弘的又一力作。作者對(duì)云計(jì)算、大數(shù)據(jù)時(shí)代下的各種編程語言以及相關(guān)技術(shù)進(jìn)行了剖析,并對(duì)編程語言的未來發(fā)展趨勢做出預(yù)測,,內(nèi)容涉及go、voltdb、node.js、coffeescript、dart、mongodb、摩爾定律、編程語言、多核、nosql 等當(dāng)今備受關(guān)注的話題。
《代碼的未來》面向各層次程序設(shè)計(jì)人員和編程愛好者,也可供相關(guān)技術(shù)人員參考。
目錄
《代碼的未來》
第一章 編程的時(shí)間和空間
1.1 編程的本質(zhì) 3
編程的本質(zhì)是思考 4
創(chuàng)造世界的樂趣 4
快速提高的性能改變了社會(huì) 5
以不變應(yīng)萬變 8
摩爾定律的局限 9
社會(huì)變化與編程 10
1.2 未來預(yù)測 13
科學(xué)的未來預(yù)測 14
it 未來預(yù)測 14
極限未來預(yù)測 16
從價(jià)格看未來 16
從性能看未來 17
從容量看未來 18
從帶寬看未來 19
小結(jié) 20
第二章 編程語言的過去、現(xiàn)在和未來
2.1 編程語言的世界 23
.被歷史埋沒的先驅(qū) 25
編程語言的歷史 26
編程語言的進(jìn)化方向 30
未來的編程語言 32
20 年后的編程語言 34
學(xué)生們的想象 34
2.2 dsl(特定領(lǐng)域語言) 36
外部dsl 37
內(nèi)部dsl 38
dsl 的優(yōu)勢 39
dsl 的定義 39
適合內(nèi)部dsl 的語言 40
外部dsl 實(shí)例 42
dsl 設(shè)計(jì)的構(gòu)成要素 43
sinatra 46
小結(jié) 47
2.3 元編程 48
meta, reflection 48
類對(duì)象 51
類的操作 52
lisp 53
數(shù)據(jù)和程序 54
lisp 程序 56
宏 56
宏的功與過 57
元編程的可能性與危險(xiǎn)性 59
小結(jié) 60
2.4 內(nèi)存管理 61
看似無限的內(nèi)存 61
gc 的三種基本方式 62
術(shù)語定義 62
標(biāo)記清除方式 63
復(fù)制收集方式 64
引用計(jì)數(shù)方式 65
引用計(jì)數(shù)方式的缺點(diǎn) 65
進(jìn)一步改良的應(yīng)用方式 66
分代回收 66
對(duì)來自老生代的引用進(jìn)行記錄 67
增量回收 68
并行回收 69
gc 大統(tǒng)一理論 69
2.5 異常處理 71
“一定沒問題的” 71
用特殊返回值表示錯(cuò)誤 72
容易忽略錯(cuò)誤處理 72
ruby 中的異常處理 73
產(chǎn)生異! 74
更高級(jí)的異常處理 75
ruby 中的后處理保證 76
其他語言中的異常處理 77
java 的檢查型異常 77
icon 的異常和真假值 78
eiffel 的design by contract 80
異常與錯(cuò)誤值 80
小結(jié) 81
2.6 閉包 82
函數(shù)對(duì)象 82
高階函數(shù) 83
用函數(shù)參數(shù)提高通用性 84
函數(shù)指針的局限 85
作用域:變量可見范圍 87
生存周期:變量的存在范圍 88
閉包與面向?qū)ο蟆 ?9
ruby 的函數(shù)對(duì)象 89
ruby 與javascript 的區(qū)別 90
lisp-1 與lisp-2 91
第三章 編程語言的新潮流
3.1 語言的設(shè)計(jì) 97
客戶端與服務(wù)器端 97
向服務(wù)器端華麗轉(zhuǎn)身 98
在服務(wù)器端獲得成功的四大理由 99
客戶端的javascript 100
性能顯著提升 101
服務(wù)器端的ruby 102
ruby on rails 帶來的飛躍 102
服務(wù)器端的go 103
靜態(tài)與動(dòng)態(tài) 104
動(dòng)態(tài)運(yùn)行模式 105
何謂類型 105
靜態(tài)類型的優(yōu)點(diǎn) 106
動(dòng)態(tài)類型的優(yōu)點(diǎn) 106
有鴨子樣的就是鴨子 107
structural subtyping 108
小結(jié) 108
3.2 go 109
new(新的) 109
experimental(實(shí)驗(yàn)性的) 109
concurrent(并發(fā)的) 110
garbage-collected(帶垃圾回收的) 110
systems(系統(tǒng)) 111
go 的創(chuàng)造者們 111
hello world 112
go 的控制結(jié)構(gòu) 113
類型聲明 116
無繼承式面向?qū)ο蟆 ?18
多值與多重賦值 120
并發(fā)編程 122
小結(jié) 124
3.3 dart 126
為什么要推出dart ? 126
dart 的設(shè)計(jì)目標(biāo) 129
代碼示例 130
dart 的特征 132
基于類的對(duì)象系統(tǒng) 132
非強(qiáng)制性靜態(tài)類型 133
dart 的未來 134
3.4 coffeescript 135
最普及的語言 135
被誤解最多的語言 135
顯著高速化的語言 136
對(duì)javascript 的不滿 138
coffeescript 138
安裝方法 139
聲明和作用域 139
分號(hào)和代碼塊 141
省略記法 142
字符串 143
數(shù)組和循環(huán) 143
類 145
小結(jié) 146
3.5 lua 148
示例程序 149
數(shù)據(jù)類型 149
函數(shù) 150
表 150
元表 151
方法調(diào)用的實(shí)現(xiàn) 153
基于原型編程 155
和ruby 的比較(語言篇) 157
嵌入式語言lua 157
和ruby 的比較(實(shí)現(xiàn)篇) 158
嵌入式ruby 159
第四章 云計(jì)算時(shí)代的編程
4.1 可擴(kuò)展性 163
信息的尺度感 163
大量數(shù)據(jù)的查找 164
二分法查找 165
散列表 167
布隆過濾器 169
一臺(tái)計(jì)算機(jī)的極限 170
dht(分布式散列表) 171
roma 172
mapreduce 173
小結(jié) 174
4.2 c10k 問題 175
何為c10k 問題 175
c10k 問題所引發(fā)的“想當(dāng)然” 177
使用epoll 功能 180
使用libev 框架 181
使用eventmachine 183
小結(jié) 185
4.3 hashfold 186
hashfold 庫的實(shí)現(xiàn)(level 1) 187
運(yùn)用多核的必要性 190
目前的ruby 實(shí)現(xiàn)所存在的問題 191
通過進(jìn)程來實(shí)現(xiàn)hashfold(level 2) 191
抖動(dòng) 193
運(yùn)用進(jìn)程池的hashfold(level 3) 194
小結(jié) 197
4.4 進(jìn)程間通信 198
進(jìn)程與線程 198
同一臺(tái)計(jì)算機(jī)上的進(jìn)程間通信 199
tcp ip 協(xié)議 201
用c 語言進(jìn)行套接字編程 202
用ruby 進(jìn)行套接字編程 204
ruby 的套接字功能 205
用ruby 實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)器 208
小結(jié) 209
4.5 rack 與unicorn 210
rack 中間件 211
應(yīng)用程序服務(wù)器的問題 212
unicorn 的架構(gòu) 215
unicorn 的解決方案 215
性能 219
策略 220
小結(jié) 221
第五章 支撐大數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)技術(shù)
5.1 鍵- 值存儲(chǔ) 225
hash 類 225
dbm 類 226
數(shù)據(jù)庫的acid 特性 226
cap 原理 227
cap 解決方案——base 228
不能舍棄可用性 229
大規(guī)模環(huán)境下的鍵- 值存儲(chǔ) 230
訪問鍵- 值存儲(chǔ) 230
鍵- 值存儲(chǔ)的節(jié)點(diǎn)處理 231
存儲(chǔ)器 232
寫入和讀取 233
節(jié)點(diǎn)追加 233
故障應(yīng)對(duì) 233
終止處理 235
其他機(jī)制 235
性能與應(yīng)用實(shí)例 236
小結(jié) 236
5.2 nosql 237
rdb 的極限 237
nosql 數(shù)據(jù)庫的解決方案 238
形形色色的nosql 數(shù)據(jù)庫 239
面向文檔數(shù)據(jù)庫 240
mongodb 的安裝 241
啟動(dòng)數(shù)據(jù)庫服務(wù)器 243
mongodb 的數(shù)據(jù)庫結(jié)構(gòu) 244
數(shù)據(jù)的插入和查詢 244
用javascript 進(jìn)行查詢 245
高級(jí)查詢 246
數(shù)據(jù)的更新和刪除 249
樂觀并發(fā)控制 250
5.3 用ruby 來操作mongodb 251
使用ruby 驅(qū)動(dòng) 251
對(duì)數(shù)據(jù)庫進(jìn)行操作 253
數(shù)據(jù)的插入 253
數(shù)據(jù)的查詢 253
高級(jí)查詢 254
find 方法的選項(xiàng) 256
原子操作 257
activerecord 259
od mapper 260
5.4 sql 數(shù)據(jù)庫的反擊 264
“云”的定義 264
sql 數(shù)據(jù)庫的極限 264
存儲(chǔ)引擎spider 265
sql 數(shù)據(jù)庫之父的反駁 265
sql 數(shù)據(jù)庫voltdb 268
voltdb 的架構(gòu) 269
voltdb 中的編程 270
hello voltdb! 271
性能測試 273
小結(jié) 275
5.5 memcached 和它的伙伴們 276
用于高速訪問的緩存 276
memcached 277
示例程序 278
對(duì)memcached 的不滿 279
memcached 替代服務(wù)器 280
另一種鍵- 值存儲(chǔ)redis 282
redis 的數(shù)據(jù)類型 284
redis 的命令與示例 285
小結(jié) 289
第六章 多核時(shí)代的編程
6.1 摩爾定律 293
呈幾何級(jí)數(shù)增長 293
摩爾定律的內(nèi)涵 294
摩爾定律的結(jié)果 295
摩爾定律所帶來的可能性 296
為了提高性能 297
摩爾定律的極限 302
超越極限 303
不再有免費(fèi)的午餐 304
6.2 unix 管道 305
管道編程 306
多核時(shí)代的管道 308
xargs——另一種運(yùn)用核心的方式 309
注意瓶頸 311
阿姆達(dá)爾定律 311
多核編譯 312
ccache 313
distcc 313
編譯性能測試 314
小結(jié) 315
6.3 非阻塞i/o 316
何為非阻塞i o 316
使用read(2) 的方法 317
邊沿觸發(fā)與電平觸發(fā) 319
使用read(2) + select 的方法 319
使用read+o_nonblock 標(biāo)志 321
ruby 的非阻塞i o 322
使用aio_read 的方法 323
6.4 node.js 330
減負(fù) 330
拖延 331
委派 332
非阻塞編程 333
node.js 框架 333
事件驅(qū)動(dòng)編程 334
事件循環(huán)的利弊 335
node.js 編程 335
node.js 網(wǎng)絡(luò)編程 337
node.js 回調(diào)風(fēng)格 339
node.js 的優(yōu)越性 340
eventmachine 與rev 341
6.5 zeromq 342
多cpu 的必要性 342
阿姆達(dá)爾定律 343
多cpu 的運(yùn)用方法 343
進(jìn)程間通信 345
管道 345
sysv ipc 346
套接字 347
unix 套接字 349
zeromq 349
zeromq 的連接模型 350
zeromq 的安裝 352
zeromq 示例程序 352
小結(jié) 354
版權(quán)聲明 356
本圖書信息來源:中國互動(dòng)出版網(wǎng)
本文關(guān)鍵詞:代碼的未來,由筆耕文化傳播整理發(fā)布。
本文編號(hào):46587
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/46587.html