《Ruby on Rails敏捷开发最佳实践》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:李刚,郭秋霞编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121055706
  • 页数:671 页
图书介绍:Ruby On Rails框架一经推出,立即引起B/S结构应用开发领域革命性的变化:开发者无需理会架构,只需要按Rails框架的约定向应用中填充代码,一切OK。为了让众多Ruby On Rails学习、工作者,以及准备使用Ruby On Rails作为开发平台的开发人员能快速掌握Ruby On Rails的开发,作者精心编写了本书,书中既详细讲解了Ruby语言的基本语法,又重点介绍了Rails框架相关知识点的各种用法。最后给出两个综合案例,作为Ruby On Rails应用开发者的参考,读者可以通过这两个案例触类旁通,解决日常开发中的问题。本书适用于正在使用Ruby On Rails进行应用开发的开发人员、渴望了解Ruby On Rails框架的开发人员,尤其适合有初步的Java EE开发经验,想从Java EE平台过渡到Ruby On Rails开发平台的开发者。

第1篇 Ruby on Rails入门 2

第1章 Ruby on Rails和企业级应用开发 2

1.1 企业级应用简介 3

1.1.1 企业级应用简介 3

1.1.2 开发企业级应用面临的挑战 4

1.1.3 Java EE开发平台简介 5

1.1.4 .NET开发平台简介 7

1.1.5 Ruby on Rails开发平台简介 8

1.2 Ruby on Rails概述 9

1.2.1 什么是Ruby 9

1.2.2 什么是Rails 10

1.2.3 Ruby on Rails的发展现状 10

1.2.4 Ruby on Rails与现存企业级应用平台的对比 11

1.3 Ruby on Rails体系介绍 12

1.3.1 Ruby on Rails架构模型 12

1.3.2 富领域对象 14

1.3.3 持久层解决方案:ActiveRecord 15

1.3.4 控制器解决方案:ActionController 16

1.3.5 表现层技术:RHTML页面 17

1.4 搭建Ruby on Rails开发和运行环境 17

1.4.1 安装Ruby解释器 17

1.4.2 安装Rails 20

1.4.3 安装MySQL数据库 22

1.4.4 Ruby on Rails相关开发工具 25

1.5 本章小结 32

第2章 体验Ruby on Rails敏捷开发 33

2.1 创建第一个Web应用 34

2.1.1 生成Rails应用及启动应用 34

2.1.2 配置数据库 37

2.1.3 使用代码生成器生成支架 38

2.2 完善第一个Web应用 40

2.2.1 使用中文响应 40

2.2.2 改进用户注册 41

2.2.3 实现用户登录 45

2.3 应对新需求 49

2.3.1 添加Model 49

2.3.2 改进“浏览留言” 51

2.3.3 改进“新增留言” 53

2.3.4 改进“查看留言” 57

2.3.5 改进“删除留言” 58

2.4 本章小结 59

第2篇 Ruby基本语法 62

第3章 Ruby编程基础 62

3.1 Ruby代码基本格式 63

3.1.1 使用Ruby解释器 63

3.1.2 Ruby代码落脚点和程序入口 64

3.1.3 Ruby区分大小写 65

3.1.4 Ruby程序的注释 66

3.1.5 Ruby中的标识符 68

3.1.6 Ruby的垃圾回收 69

3.2 常量 69

3.2.1 Ruby是弱类型语言 69

3.2.2 普通常量 69

3.2.3 常量的范围 71

3.2.4 类名和模块名常量 73

3.3 变量及变量的作用域 74

3.3.1 变量的概念 74

3.3.2 局部变量 74

3.3.3 全局变量 77

3.3.4 实例变量 79

3.3.5 类变量 83

3.3.6 伪变量 85

3.4 基本数据类型 85

3.4.1 弱类型语言 86

3.4.2 数值型 86

3.4.3 字符串 89

3.4.4 字符串的%表示法 91

3.4.5 多行字符串的字面值 91

3.5 范围 94

3.6 正则表达式 97

3.6.1 正则表达式概述 97

3.6.2 创建正则表达式 97

3.6.3 匹配基本字符 99

3.6.4 重复 99

3.6.5 成组 100

3.7 数组 100

3.7.1 定义数组 100

3.7.2 数组的%表示方法 102

3.7.3 数组的常用方法 102

3.8 Hash对象 104

3.8.1 定义Hash对象 104

3.8.2 操作Hash对象 105

3.9 符号对象 107

3.10 运算符 109

3.10.1 算术运算符 110

3.10.2 赋值运算符 111

3.10.3 位运算符 111

3.10.4 比较运算符 113

3.10.5 逻辑运算符 114

3.10.6 三目运算符 116

3.10.7 Ruby运算符的含义 116

3.11 本章小结 117

第4章 表达式和语句 118

4.1 表达式 119

4.1.1 返回值的表达式 119

4.1.2 没有返回值的表达式 120

4.1.3 并行赋值 120

4.1.4 嵌套赋值 121

4.1.5 BEGIN和END块 121

4.1.6 at_exit块 122

4.2 顺序结构 123

4.3 分支结构 123

4.3.1 if表达式 123

4.3.2 if修饰句 127

4.3.3 unless表达式 127

4.3.4 unless修饰句 128

4.3.5 case表达式 129

4.4 循环结构 131

4.4.1 while表达式 131

4.4.2 while修饰句 133

4.4.3 until表达式 133

4.4.4 until修饰句 134

4.4.5 for...in表达式 135

4.4.6 loop表达式 137

4.4.7 使用迭代器 137

4.5 控制循环结构 138

4.5.1 使用break结束循环 138

4.5.2 使用next结束本次循环 139

4.5.3 使用redo重新开始循环 140

4.5.4 使用retry重启迭代器 141

4.5.5 使用return结束方法 142

4.6 深入迭代器和块 142

4.6.1 块的概述 143

4.6.2 使用块 143

4.6.3 实现迭代器 145

4.6.4 块和闭包 148

4.7 本章小结 150

第5章 面向对象(上) 151

5.1 面向对象的概念 152

5.1.1 面向过程 152

5.1.2 面向对象 153

5.2 类与对象 153

5.2.1 类定义 153

5.2.2 方法定义 155

5.2.3 对象的产生与使用 155

5.2.4 类和对象的关系 157

5.2.5 动态追加类定义 158

5.2.6 内部类定义 158

5.2.7 特殊类定义 159

5.3 构造器 161

5.4 类的继承 162

5.4.1 继承的特点和语法 162

5.4.2 调用父类构造器 165

5.4.3 覆盖父类的方法 166

5.5 深入方法 168

5.5.1 方法的定义 168

5.5.2 调用方法 170

5.5.3 方法的参数传递 171

5.5.4 使用Hash对象作为参数 174

5.5.5 可变长度形参的方法定义 175

5.5.6 使用数组参数 176

5.5.7 特殊方法 176

5.6 在方法中使用块 177

5.6.1 使用yield调用块 177

5.6.2 Proc参数 179

5.6.3 动态执行代码 181

5.7 本章小结 182

第6章 面向对象(下) 183

6.1 类方法 184

6.1.1 类方法的定义和使用 184

6.1.2 单例模式 187

6.1.3 定义method_missing方法 188

6.2 成员变量和属性 189

6.2.1 定义实例变量 189

6.2.2 定义类变量 191

6.2.3 定义属性 193

6.2.4 存取器 196

6.2.5 虚拟属性 198

6.3 弱类型语言的多态 198

6.3.1 为什么Ruby没有接口 198

6.3.2 鸭子类型和多态 199

6.4 访问控制 203

6.5 模块 206

6.5.1 定义模块 206

6.5.2 命名空间 207

6.5.3 混入 209

6.5.4 混入的深入讨论 211

6.5.5 导入其他文件 213

6.6 Ruby的命名习惯 214

6.7 关于定义的操作 214

6.7.1 使用alias为定义命名别名 214

6.7.2 使用undef释放定义 215

6.7.3 使用defined?判断是否完成定义 216

6.8 本章小结 217

第7章 异常处理 218

7.1 异常概述 219

7.1.1 了解异常 219

7.1.2 异常机制的优势 220

7.2 异常处理流程 221

7.2.1 使用rescue捕捉异常 222

7.2.2 异常处理机制 225

7.2.3 使用ensure回收资源 226

7.2.4 使用retry再次执行 227

7.3 rescue修饰句 228

7.4 引发异常 229

7.4.1 引发异常 229

7.4.2 自定义异常类 230

7.4.3 rescue和raise的同时使用 231

7.5 在程序定义中使用异常处理 232

7.5.1 在类/模块定义中使用异常处理 232

7.5.2 在方法定义中使用异常处理 235

7.6 本章小结 236

第8章 多线程 237

8.1 线程概述 238

8.1.1 线程和进程 238

8.1.2 多线程的优势 239

8.2 创建多线程 240

8.2.1 用Thread类创建线程 240

8.2.2 Ruby的线程运行方式 243

8.3 控制线程 243

8.3.1 join线程 244

8.3.2 控制线程的方法 245

8.3.3 线程状态 248

8.4 深入线程 249

8.4.1 线程和变量 249

8.4.2 线程和异常 252

8.5 多线程的同步 254

8.5.1 线程安全问题 254

8.5.2 使用Mutex实现互斥 256

8.5.3 使用Condition Variable实现同步 258

8.6 本章小结 260

第9章 输入/输出 261

9.1 基本输入/输出 262

9.1.1 基本输出 262

9.1.2 基本输入 265

9.2 IO类简介 267

9.3 文件访问 267

9.3.1 调用系统命令 267

9.3.2 打开/关闭文件 268

9.3.3 读文件 271

9.3.4 使用迭代读文件 274

9.3.5 写文件 275

9.3.6 追加文件 276

9.4 本章小结 276

第10章 网络编程 277

10.1 网络编程的基础知识 278

10.1.1 网络基础知识 278

10.1.2 IP地址和端口号 280

10.2 Ruby语言的网络编程支持 281

10.2.1 什么是Socket 281

10.2.2 Ruby的Socket支持 282

10.2.3 面向应用层的网络编程 283

10.3 基于TCP协议的网络编程 284

10.3.1 TCP协议基础 284

10.3.2 使用TCPSever创建TCP服务器端 285

10.3.3 使用TCPSocket创建TCP客户端 286

10.3.4 加入多线程 287

10.4 基于UDP协议的网络编程 289

10.4.1 UDP协议基础 289

10.4.2 使用UDPSocket发送数据 290

10.4.3 使用UDPSocket接收数据 291

10.5 面向应用的网络支持 292

10.6 本章小结 294

第3篇 Rails框架 296

第11章 Rails框架入门 296

11.1 Rails简介 297

11.1.1 Rails的优势和特点 297

11.1.2 Rails应用的目录结构 299

11.1.3 Rails的代码生成器 301

11.2 Rails的配置和约定 302

11.2.1 配置Rails的运行环境 302

11.2.2 Rails的命名约定 303

11.3 对象关系映射和活动记录集 304

11.3.1 ORM的概念和优势 304

11.3.2 活动记录集的概念和优势 305

11.4 活动记录集入门 305

11.4.1 活动记录集的基本映射 306

11.4.2 表对应类 307

11.4.3 列对应属性 310

11.4.4 访问属性 315

11.4.5 映射主键 317

11.4.6 映射复合属性 322

11.5 连接数据库 326

11.5.1 通过配置文件指定连接 327

11.5.2 通过代码指定连接 328

11.5.3 调用establish_connection方法指定数据库连接 330

11.6 本章小结 332

第12章 Rails的持久层解决方案 333

12.1 插入记录 334

12.1.1 调用new()方法和save()方法增加记录 334

12.1.2 调用create()方法增加记录 338

12.2 查询记录 341

12.2.1 强大的find()方法 341

12.2.2 根据主键查询 347

12.2.3 根据普通属性进行查询 349

12.2.4 使用find_by_sql进行查询 352

12.2.5 使用count或count_by_sql统计记录数 355

12.2.6 Rails所支持的运算符 357

12.3 更新记录 360

12.3.1 直接更新特定记录 360

12.3.2 使用update_attribute或update_attributes方法更新记录 361

12.3.3 使用update方法更新记录 363

12.3.4 使用update_all方法更新记录 366

12.4 删除记录 367

12.4.1 使用delete根据主键删除 367

12.4.2 使用delete_all根据条件子句删除 369

12.4.3 使用destroy根据主键删除 370

12.4.4 使用destroy_all根据条件子句删除 371

12.5 关联关系 372

12.5.1 数据库中表的关联关系 372

12.5.2 数据表中建立关联 374

12.5.3 一对一关联 376

12.5.4 一对多关联 382

12.5.5 多对多关联 387

12.6 深入关联关系 391

12.6.1 自关联 391

12.6.2 多重关联 394

12.7 继承关系 397

12.7.1 单表继承关系 397

12.7.2 多态关联 401

12.8 事务处理 405

12.9 模型校验 407

12.9.1 模型校验的概念 408

12.9.2 常用的模型校验器 410

12.9.3 校验失败后的处理 412

12.10 回调方法 417

12.11 本章小结 419

第13章 Rails的控制器解决方案 420

13.1 控制器入门 421

13.1.1 MVC简介 421

13.1.2 Rails应用的MVC 422

13.1.3 ApplicationController简介 424

13.1.4 过滤器 426

13.1.5 通过Filter设置中文响应 430

13.1.6 使用代码生成器创建控制器 432

13.2 处理用户请求 432

13.2.1 路由请求 432

13.2.2 指定URL规则 436

13.2.3 命名路由 437

13.2.4 处理无法识别的URL 438

13.2.5 调用模型方法 438

13.3 生成响应 442

13.3.1 提交数据给视图 442

13.3.2 重定向 451

13.3.3 使用二进制流响应 453

13.4 跟踪用户状态 455

13.4.1 Session和Cookie 455

13.4.2 操作Session 456

13.4.3 操作Cookie 459

13.5 本章小结 462

第14章 Rails的表现层解决方案 463

14.1 视图层解决方案 464

14.1.1 模板 464

14.1.2 RHTML模板 466

14.1.3 RXML模板 469

14.1.4 RJS模板 471

14.2 常用的工具方法 473

14.2.1 基本工具方法 473

14.2.2 格式化输出方法 476

14.2.3 链接工具方法 479

14.2.4 控制分页方法 482

14.3 表单相关的工具方法 485

14.3.1 基本表单工具方法 485

14.3.2 高级表单工具方法 487

14.3.3 时间/日期列表框 490

14.3.4 文件上传 492

14.4 重构模板 499

14.4.1 使用Layout页面装饰 499

14.4.2 使用局部模板 504

14.4.3 使用Helper 506

14.4.4 使用组件 508

14.4.5 使用缓存 511

14.5 本章小结 515

第15章 Rails的邮件抽象层 516

15.1 电子邮件简介 517

15.1.1 SMTP协议简介 517

15.1.2 POP3协议简介 517

15.1.3 电子邮件的用处 518

15.2 Ruby的邮件支持 518

15.2.1 使用SMTP发送邮件 519

15.2.2 使用POP3接收邮件 521

15.3 Rails提供的邮件支持 523

15.3.1 Rails邮件支持核心 523

15.3.2 在Rails应用中发送邮件 526

15.3.3 发送HTML格式邮件 531

15.3.4 发送带附件的邮件 532

15.4 注册激活系统 533

15.4.1 基本注册功能 534

15.4.2 发送激活邮件 536

15.4.3 处理激活 537

15.4.4 处理登录 538

15.5 本章小结 539

第16章 Rails和Ajax 540

16.1 Ajax入门 541

16.1.1 Ajax的含义简介 541

16.1.2 传统的B/S结构应用的缺点 542

16.1.3 Ajax的革命性进步 542

16.1.4 Ajax的关键技术 544

16.2 简单Ajax体验 546

16.2.1 Ajax流程 546

16.2.2 创建XMLHttpRequest对象 547

16.2.3 实现Ajax交互 547

16.3 Rajls的Ajax支持 550

16.4 Ajax核心模块:PrototypeHelper 552

16.4.1 使用link_to_remote发送异步请求 552

16.4.2 使用form_remote_tag异步提交表单 557

16.4.3 使用submit_to_remote异步提交表单 560

16.4.4 使用periodically_call_remote周期性发送异步请求 561

16.4.5 使用evaluate_remote_response执行远程JavaScript脚本 563

16.4.6 使用observe_field监测某个表单域 564

16.4.7 使用auto_complete_field实现自动完成 566

16.4.8 使用text_field_with_auto_complete生成自动完成文本框 569

16.4.9 使用auto_complete_result生成自动完成响应 570

16.4.10 使用remote_function自定义请求的发送时机 572

16.5 Ajax的效果模块:ScriptaculousHelper 573

16.5.1 拖动效果 573

16.5.2 使用sortable_element排列列表项 577

16.5.3 视觉效果 578

16.6 本章小结 580

第4篇 实例篇 582

第17章 在线考试系统 582

17.1 应用背景和需求分析 583

17.1.1 系统应用背景 583

17.1.2 系统需求分析 584

17.1.3 系统ER图及数据库设计 585

17.2 试题数据管理的实现 587

17.2.1 系统的中文化 588

17.2.2 页面装饰 590

17.2.3 添加考试类型 592

17.2.4 浏览全部试题 594

17.2.5 添加试题 597

17.3 考生数据管理的实现 600

17.3.1 浏览全部考生 600

17.3.2 删除考生 602

17.3.3 添加考生数据 603

17.4 考生前台考试的实现 606

17.4.1 考生登录 606

17.4.2 选择考试类型和进入考试 610

17.4.3 提交试题答案 616

17.4.4 显示考试结果 618

17.5 本章小结 619

第18章 电子拍卖系统 620

18.1 应用背景及系统设计 621

18.1.1 系统应用背景 621

18.1.2 系统需求分析 622

18.1.3 系统用例图 623

18.1.4 系统实体及其关联关系 625

18.1.5 数据库设计 626

18.2 用户模块 628

18.2.1 用户注册 629

18.2.2 用户登录 632

18.2.3 用户退出 636

18.3 管理拍卖物品模块 637

18.3.1 添加新物品 637

18.3.2 查看物品 643

18.3.3 编辑物品 647

18.4 拍卖模块 650

18.4.1 浏览所有拍卖物品 650

18.4.2 查看物品详细信息 657

18.4.3 竞价 661

18.5 用户状态模块 664

18.5.1 查看竞标 665

18.5.2 查看赢取物品 667

18.6 页面装饰 669

18.7 本章小结 671