图书目录

1.1简介 ....................................... 3 

1.2 SaaS,软件即服务 ............................... 3 

1.3面向服务的架构(SOA) ........................... 6 

1.4云计算 ..................................... 9 

1.5漂亮的代码与遗留代码 ............................ 11 

1.6软件质量保证:测试 ............................. 12 

1.7生产力:简明、综合、复用和工具 ..................... 14 

1.8软件开发过程:计划和文档过程 ....................... 16 

1.9软件开发过程:敏捷宣言 ........................... 21 

1.10本书导览 .................................... 25 

1.11如何阅读本书 ................................. 27 

1.12谬论和陷阱 ................................... 29 

1.13结束语:软件工程不只是单纯的编程 .................... 30 

1.14深入学习 .................................... 31 

1.15建议的练习 ................................... 33

务 

35

第 

2章 

SaaS应

构 

架构37 

2.1 100000英尺:客户端-服务器架构 ...................... 39 

2.2 50000英尺:通信——HTTP和URI ..................... 41 

2.3 10000英尺:表示方法——HTML和CSS .................. 45 

2.4 5000英尺:3层体系结构和横向扩展 ..................... 48 

2.5 1000英尺:模型-视图-控制器架构 ...................... 51 

2.6 500英尺:模型的活动记录 .......................... 53 

2.7 500英尺:路由、控制器与REST....................... 55 

2.8 500英尺:模板视图 .............................. 59 

2.9谬论和陷阱 ................................... 60 

2.

10结束语:模式、架构和长寿命的API..................... 61 

2.11深入学习 

.................................... 62 

2.12建议的练习 

................................... 63

第 

3章 

SaaS架

对 

Java编

的 

Ruby简

介 

架构65 

3.1概述以及

Ruby的三大支柱 ........................... 67 

3.2一切都是对象 

................................. 71 

3.

3每一个操作都是一个方法调用 ........................ 72 

3.

4类、方法和继承 ................................ 75 

3.

5所有的编程都是元编程 ............................ 79 

3.

6块:迭代器、函数式习语和闭包 ....................... 81 

3.7 

mix-in和鸭子类型 ............................... 85 

3.8用

yield构造自己的迭代器 ........................... 87 

3.9谬论和陷阱 

................................... 90 

3.

10结束语:惯用语言使用 ............................ 91 

3.11深入学习 

.................................... 92 

3.12建议的练习 

................................... 93

第 

4章 

SaaS架

: 

Rails简

介 

架构97 

4.1 

Rails基础:从0到CRUD............................ 99 

4.2数据库和迁移 

.................................104 

4.3模型:

ActiveRecord基础 ...........................106 

4.4控制器和视图 

.................................111 

4.

5调试:当出现错误时 .............................117 

4.6表单提交:

new和create ............................120 

4.7重定向和

.ash..................................122 

4.8完成

CRUD:编辑/更新和销毁 ........................125 

4.9谬论和陷阱 

...................................129 

4.10结束语:

SOA的设计 .............................130 

4.11深入学习 

....................................131 

4.12建议的练习 

...................................132

第 

5章 

SaaS框

: 

Rails高

能 

135 

5.1去除

MVC中的重复:partial、校验和过滤器 ................137 

5.

2单点登录和第三方认证 ............................143 

5.3关联和外键 

...................................148 

5.4间接关联 

....................................152 

5.5关联的

REST路由 ................................156 

5.

6可复用作用域的组合查询 ...........................159 

5.7谬论和陷阱 

...................................161 

5.

8结束语:语言、生产力和美观 ........................162 

5.9深入学习 

....................................163 

5.10建议的练习 

...................................164 

xx 

第 

6章 

SaaS的

: 

JavaScript简

介 

6.1 

JavaScript:大图景 ...............................167 

6.2面向

Ruby程序员的客户端JavaScript介绍 ..................170 

6.3函数和构造器 

.................................175 

6.

4文档对象模型和jQuery ............................178 

6.5事件与回调

 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 

6.6 

AJAX:异步的JavaScript和XML.......................187 

6.7测试和调试

JavaScript与AJAX.........................192 

6.8单页面应用和

JsonAPI.............................200 

6.9谬论和陷阱 

...................................204 

6.10结束语:

JavaScript的昨天、今天以及明天 .................208 

6.11深入学习 

....................................210 

6.12建议的练习 

...................................212

式 

215

第 

7章

事 

设计217 

7.

1行为驱动设计与用户故事简介 ........................219 

7.2 

SMART用户故事 ................................221 

7.

3任务点、速率和PivotalTracker........................223 

7.

4敏捷开发的成本估计 .............................226 

7.5 

Cucumber和Capybara介绍 ...........................227 

7.6运行

Cucumber和Capybara...........................229 

7.

7低精度用户界面模型和故事板 ........................231 

7.8优化

RottenPotatoes ..............................234 

7.

9显式的和隐式的需求、命令式的和声明式的情景 .............239 

7.

10计划文档的视角 ................................242 

7.11谬论和陷阱 

...................................248 

7.12结束语:

BDD的利与弊 ............................250 

7.13深入学习 

....................................252 

7.14建议的练习 

...................................253

第 

8章

发 

257 

8.1背景:

RESTful应用程序接口和Rubygem..................259 

8.2 

FIRST、TDD以及RSpec入门 .........................261 

8.3 

TDD周期:红色-绿色-重构 ..........................264 

8.4更多的控制器

spec和重构 ...........................268 

8.5夹具和工厂 

...................................272 

8.6面向模型的

TDD ................................275 

8.

7为互联网建立桩 ................................278 

8.

8覆盖率概念、单元测试与集成测试 .....................284 

8.

9其他测试方法和术语 .............................287 

8.10计划文档的视角 ................................288 

8.11谬论和陷阱 ...................................291 

8.12结束语:TDD与传统的调试方法 .......................293 

8.13深入学习 ....................................294 

8.14建议的练习 ...................................295

第 

9章

使

件 

297 

9.1代码“遗留”的原因以及敏捷开发的用处 .................299 

9.2探索遗留代码库 ................................302 

9.3使用鉴定测试来创建基准事实 ........................306 

9.4注释 .......................................309 

9.5度量、代码味道及SOFA ...........................310 

9.6方法级别的重构:使用嫁接替代依赖 ....................314 

9.7计划文档的视角 ................................320 

9.8谬论和陷阱 ...................................324 

9.9结束语:持续的重构 .............................325 

9.10深入学习 ....................................326 

9.11建议的练习 ...................................328

第 

10章

: 

Scrum、

统 

331 

10.1团队规模:两个匹萨大小的团队以及Scrum.................333 

10.2结对编程 ....................................335 

10.3敏捷设计和代码评审 .............................337 

10.4两个匹萨大小团队的版本控制:合并冲突 .................337 

10.5有效地使用分支 ................................341 

10.6报告和修复代码:五个R ...........................344 

10.7计划文档的视角 ................................346 

10.8谬论和陷阱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 

10.9结束语:团队、合作以及四十年的版本控制 ................355 

10.10深入学习 ....................................356 

10.11建议的练习 ...................................358

第 

11章 

SaaS类

式 

设计361 

11.1模式、反模式及SOLID类架构 ........................363 

11.2正好够用的UML................................368 

11.3单一责任原则 .................................370 

11.4开闭原则 ....................................372 

11.5里氏代换原则 .................................377 

11.6依赖注入原则 .................................379 

11.7迪米特法则 ...................................383 

11.8计划文档的视角 ................................387 

11.9谬论和陷阱 ...................................388 

11.10结束语:框架包含了设计模式 ........................389 

xxii 

11.11深入学习 ....................................390 

11.12建议的练习 ...................................392

第 

12章 

SaaS非

全 

393 

12.1从开发到部署 .................................395 

12.2量化响应性 ...................................397 

12.3持续集成和持续部署 .............................399 

12.4发行和功能标记 ................................401 

12.5量化可访问性 .................................405 

12.6监控和查找瓶颈 ................................406 

12.7用缓存来提高渲染和数据库性能 .......................408 

12.8避免滥用数据库查询 .............................412 

12.9安全:在应用程序中保护用户数据 .....................415 

12.10计划文档的视角 ................................420 

12.11谬论和陷阱 ...................................422 

12.12结束语:性能、可靠性、安全和有漏洞的抽象层 .............425 

12.13深入学习 ....................................426 

12.14建议的练习 ...................................430

第 

13章

记 

433 

13.1SaaS、SOA、Ruby和Rails的视角 .......................434 

13.2回顾过往 ....................................434 

13.3展望未来 ....................................437 

13.5最后的话 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

13.5深入学习 ....................................439 

录 

A使

件 

441 

A.1 Beta版本的指导 ................................443 

A.2本书配套软件概览 ...............................443 

A.3在VirtualBox中使用bookware的虚拟机 ....................444 

A.4在Amazon的EC2上使用bookware的虚拟机 .................445 

A.5编辑代码:编辑器和UNIX生存技巧 .....................446 

A.6开始使用Git进行版本控制 ..........................447 

A.7开始学习GitHub或ProjectLocker .......................448 

A.8使用Heroku部署到云端 ............................452 

A.9谬论和陷阱 ...................................454 

A.10深入学习 ....................................455