本书介绍了 21世纪以来软体工程的两个新的发展方向——软体即服务和敏捷开发。本书第一部分介绍了软体即服务及其相关的编程环境,包括 Ruby、Rails和 JavaScript等内容;第二部分介绍了现代软体开发并强调了敏捷开发相关技术,包括行为驱动和测试驱动的设计与开发,遗留代码处理,项目团队管理,设计模式,软体架构等内容,并给出了许多有用的建议。 本书的作者 Armando Fox和 David Patterson不仅在计算机科学领域建树颇丰,而且在软体工程方面也有着丰富的教学和研究实践经验。他们将软体即服务和敏捷开发的内容与具体的实例相结合,完成了这本内容丰富且易于学习的书。我们希望本书能够帮助你通过实践学到软体开发的知识与技能,并能开发出漂亮而持久的软体。
基本介绍
- 书名:SaaS软体工程:云计算时代的敏捷开发
- ISBN:9787302399674
- 定价:69.80元
- 出版时间:2015.06.01
- 印次:1-1
- 印刷日期:2015.06.08
目录
1.1简介.......................................3
1.2SaaS,软体即服务...............................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
2.1100000英尺:客户端-伺服器架构......................39
2.250000英尺:通信——HTTP和URI.....................41
2.310000英尺:表示方法——HTML和CSS..................45
2.45000英尺:3层体系结构和横向扩展.....................48
2.51000英尺:模型-视图-控制器架构......................51
2.6500英尺:模型的活动记录..........................53
2.7500英尺:路由、控制器与REST.......................55
2.8500英尺:模板视图..............................59
2.9谬论和陷阱...................................60
2.
10结束语:模式、架构和长寿命的API.....................61
2.11深入学习
....................................62
2.12建议的练习
...................................63
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.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
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.1JavaScript:大图景...............................167
6.2面向Ruby程式设计师的客户端JavaScript介绍..................170
6.3函式和构造器.................................175
6.4文档对象模型和jQuery............................178
6.5事件与回调...................................18
6.6AJAX:异步的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
7.1行为驱动设计与用户故事简介........................219
7.2SMART用户故事................................221
7.3任务点、速率和PivotalTracker........................223
4敏捷开发的成本估计.............................226
7.5
Cucumber和Capybara介绍...........................227
7.6运行
Cucumber和Capybara...........................229
7低精度用户界面模型和故事板........................231
7.8最佳化
RottenPotatoes..............................234
9显式的和隐式的需求、命令式的和声明式的情景.............239
10计画文档的视角................................242
7.11谬论和陷阱
...................................248
7.12结束语:
BDD的利与弊............................250
7.13深入学习
....................................252
7.14建议的练习
...................................253
RESTful应用程式接口和Rubygem..................259
FIRST、TDD以及RSpec入门.........................261
TDD周期:红色-绿色-重构..........................264
8.4更多的控制器
spec和重构...........................268
8.5夹具和工厂
...................................272
8.6面向模型的
TDD................................275
7为网际网路建立桩................................278
8覆盖率概念、单元测试与集成测试.....................284
9其他测试方法和术语.............................287
8.10计画文档的视角................................288
8.11谬论和陷阱...................................291
8.12结束语:TDD与传统的调试方法.......................293
8.13深入学习....................................294
8.14建议的练习...................................295
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.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.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.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.1SaaS、SOA、Ruby和Rails的视角.......................434
13.2回顾过往....................................434
13.3展望未来....................................437
13.5最后的话....................................438
13.5深入学习....................................439
A.1Beta版本的指导................................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