《SaaS软件工程 云计算时代的敏捷开发》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)福克斯,(美)帕特木著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302399674
  • 页数:456 页
图书介绍:本书介绍 SaaS+敏捷开发过程(Agile)+云计算平台,让学生在Rails架构下进行软件工程的实践。我们主要介绍的内容包括:测试驱动开发(test-driven development),行为驱动/用户为中心的设计(behavior-driven / user-centric design),设计模式,老程序管理与重构,软件服务的部署(包括SaaS性能和安全基础),以及管理小型的开发团队(包括代码管理,减少不必要流程,工作进度安排等等)。

第1章 SaaS与敏捷开发介绍 1

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 重定向和flash 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

第6章 SaaS的客户端框架:JavaScript简介 165

6.1 JavaScript:大图景 167

6.2 面向Ruby程序员的客户端JavaScript介绍 170

6.3 函数和构造器 175

6.4 文档对象模型jQuery 178

6.5 事件与回调 182

6.6 AJAX:异步的JavaScript和XML 187

6.7 测试和调试JavaScript与AJAX 192

6.8 单页面应用和Json API 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 任务点、速率和Pivotal Tracker 223

7.4 敏捷开发的成本估计 226

7.5 Cucumber和Capybara介绍 227

7.6 运行Cucumber和Capybara 229

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

7.8 优化Rotten Potatoes 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应用程序接口和Ruby gem 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 谬论和陷阱 354

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

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.1 SaaS、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