图书介绍

代码的未来2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

代码的未来
  • (日)松本行弘著;周自恒译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115317513
  • 出版时间:2013
  • 标注页数:355页
  • 文件大小:78MB
  • 文件页数:369页
  • 主题词:程序语言

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

代码的未来PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 编程的时间和空间3

1.1 编程的本质3

编程的本质是思考4

创造世界的乐趣4

快速提高的性能改变了社会5

以不变应万变8

摩尔定律的局限9

社会变化与编程10

1.2 未来预测13

科学的未来预测14

IT未来预测14

极限未来预测16

从价格看未来16

从性能看未来17

从容量看未来18

从带宽看未来19

小结20

第2章 编程语言的过去、现在和未来20

2.1 编程语言的世界23

被历史埋没的先驱25

编程语言的历史26

编程语言的进化方向30

未来的编程语言32

20年后的编程语言34

学生们的想象34

2.2 DSL(特定领域语言)36

外部DSL37

内部DSL38

DSL的优势39

DSL的定义39

适合内部DSL的语言40

外部DSL实例42

DSL设计的构成要素43

Sinatra46

小结47

2.3 元编程48

Meta,Reflection48

类对象51

类的操作52

Lisp53

数据和程序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的Design by Contract80

异常与错误值80

小结81

2.6 闭包82

函数对象82

高阶函数83

用函数参数提高通用性84

函数指针的局限85

作用域:变量可见范围87

生存周期:变量的存在范围88

闭包与面向对象89

Ruby的函数对象89

Ruby与JavaScript的区别90

Lisp-1与Lisp-291

第3章 编程语言的新潮流97

3.1 语言的设计97

客户端与服务器端97

向服务器端华丽转身98

在服务器端获得成功的四大理由99

客户端的JavaScript100

性能显著提升101

服务器端的Ruby102

Ruby on Rails带来的飞跃102

服务器端的Go103

静态与动态104

动态运行模式105

何谓类型105

静态类型的优点106

动态类型的优点106

有鸭子样的就是鸭子107

Structural Subtyping108

小结108

3.2 GO109

New(新的)109

Experimental(实验性的)109

Concurrent(并发的)110

Garbage-collected(带垃圾回收的)110

Systems(系统)111

Go的创造者们111

Hello World112

Go的控制结构113

类型声明116

无继承式面向对象118

多值与多重赋值120

并发编程122

小结124

3.3 Dart126

为什么要推出Dart ?126

Dart的设计目标129

代码示例130

Dart的特征132

基于类的对象系统132

非强制性静态类型133

Dart的未来134

3.4 Coffee Script135

最普及的语言135

被误解最多的语言135

显著高速化的语言136

对JavaScript的不满138

CoffeeScript138

安装方法139

声明和作用域139

分号和代码块141

省略记法142

字符串143

数组和循环143

类145

小结146

3.5 Lua148

示例程序149

数据类型149

函数150

表150

元表151

方法调用的实现153

基于原型编程155

和Ruby的比较(语言篇)157

嵌入式语言Lua157

和Ruby的比较(实现篇)158

嵌入式Ruby159

第4章 云计算时代的编程163

4.1 可扩展性163

信息的尺度感163

大量数据的查找164

二分法查找165

散列表167

布隆过滤器169

一台计算机的极限170

DHT(分布式散列表)171

Roma172

MapReduce173

小结174

4.2 C10K问题175

何为C10K问题175

C10K问题所引发的“想当然”177

使用epoll功能180

使用libev框架181

使用EventMachine183

小结185

4.3 HaShFold186

HashFold库的实现(Level 1)187

运用多核的必要性190

目前的Ruby实现所存在的问题191

通过进程来实现HashFold(Level 2)191

抖动193

运用进程池的HashFold(Level 3)194

小结197

4.4 进程间通信198

进程与线程198

同一台计算机上的进程间通信199

TCP/IP协议201

用C语言进行套接字编程202

用Ruby进行套接字编程204

Ruby的套接字功能205

用Ruby实现网络服务器208

小结209

4.5 Rack与Unicorn210

Rack中间件211

应用程序服务器的问题212

Unicorn的架构215

Unicorn的解决方案215

性能219

策略220

小结221

第5章 支撑大数据的数据存储技术221

5.1 键-值存储225

Hash类225

DBM类226

数据库的ACID特性226

CAP原理227

CAP解决方案——BASE228

不能舍弃可用性229

大规模环境下的键-值存储230

访问键-值存储230

键-值存储的节点处理231

存储器232

写入和读取233

节点追加233

故障应对233

终止处理235

其他机制235

性能与应用实例236

小结236

5.2 NoSQL237

RDB的极限237

NoSQL数据库的解决方案238

形形色色的NoSQL数据库239

面向文档数据库240

MongoDB的安装241

启动数据库服务器243

MongoDB的数据库结构244

数据的插入和查询244

用JavaScript进行查询245

高级查询246

数据的更新和删除249

乐观并发控制250

5.3 用Ruby来操作MongoDB251

使用Ruby驱动251

对数据库进行操作253

数据的插入253

数据的查询253

高级查询254

find方法的选项256

原子操作257

ActiveRecord259

ODMapper260

5.4 SQL数据库的反击264

“云”的定义264

SQL数据库的极限264

存储引擎Spider265

SQL数据库之父的反驳265

SQL数据库VoltDB268

VoltDB的架构269

VoltDB中的编程270

Hello VoltDB!271

性能测试273

小结275

5.5 memcached和它的伙伴们276

用于高速访问的缓存276

memcached277

示例程序278

对memcached的不满279

memcached替代服务器280

另一种键-值存储Redis282

Redis的数据类型284

Redis的命令与示例285

小结289

第6章 多核时代的编程293

6.1 摩尔定律293

呈几何级数增长293

摩尔定律的内涵294

摩尔定律的结果295

摩尔定律所带来的可能性296

为了提高性能297

摩尔定律的极限302

超越极限303

不再有免费的午餐304

6.2 UNIX管道305

管道编程306

多核时代的管道308

xargs——另一种运用核心的方式309

注意瓶颈311

阿姆达尔定律311

多核编译312

ccache313

distcc313

编译性能测试314

小结315

6.3 非阻塞I/O316

何为非阻塞I/O316

使用read(2)的方法317

边沿触发与电平触发319

使用read(2)+select的方法319

使用read+O_NONBLOCK标志321

Ruby的非阻塞I/O322

使用aio_read的方法323

6.4 node.js330

减负330

拖延331

委派332

非阻塞编程333

node.js框架333

事件驱动编程334

事件循环的利弊335

node.js编程335

node.js网络编程337

node.js回调风格339

node.js的优越性340

EventMachine与Rev341

6.5 ZeroMQ342

多CPU的必要性342

阿姆达尔定律343

多CPU的运用方法343

进程间通信345

管道345

SysV IPC346

套接字347

UNIX套接字349

ZeroMQ349

ZeroMQ的连接模型350

ZeroMQ的安装352

ZeroMQ示例程序352

小结354

版权声明356

热门推荐