扫描二维码,下载手机APP
下载安卓APP箭头
客服QQ
箭头给我发消息

客服QQ:3315713922

SaaS软件工程:云计算时代的敏捷开发

综合评级:
★★★★★

定价:
¥55.10

作者:
Armando Fox,David Patterson

出版社:
清华大学

出版日期:
2015/06/01

页数:
16

ISBN:
9787302399674

书籍介绍

  图灵奖获得者Freaderick.P.Brooks.Jr等多位世界著名高校教授、谷歌公司高级工程师等专家强烈推荐!该书囊括了关键的软件工程基础、丰富的云计算机知识,同时全面地介绍了实用敏捷开发,实例丰富,适合广大读者进行深度的学习。

  《SaaS软件工程(云计算时代的敏捷开发)》介绍了21世纪以来软件工程的两个新的发展方向――软件即服务和敏捷开发。本书**部分介绍了软件即服务及其相关的编程环境,包括Ruby、Rails和 JavaScript等内容;第二部分介绍了现代软件开发并强调了敏捷开发相关技术,包括行为驱动和测试驱动的设计与开发,遗留代码处理,项目团队管理,设计模式,软件架构等内容,并给出了许多有用的建议。

  本书的作者Armando Fox(福克斯)和David Patterson(帕特森)不仅在计算机科学领域建树颇丰,而且在软件工程方面也有着丰富的教学和研究实践经验。他们将软件即服务和敏捷开发的内容与具体的实例相结合,完成了这本内容丰富且易于学习的书。

  我们希望本书能够帮助你通过实践学到软件开发的知识与技能,并能开发出漂亮而持久的软件。

作者简介

译者徐葳博士现任清华大学交叉信息研究院助理教授,博士生导师,中组部“青年千人计划”特聘专家,博士毕业于美国加州大学伯克利分校,是本书的两位作者David Patterson和Armando Fox联合指导的博士生,他主要从事超大规模分布式系统以及大数据处理放心的跨领域研究工作,相关研究工作发表SOSP、ICML、ICDM等**国内会议。教学中他主要负责计算机科学实验班的“软件工程”(使用本书作为教材)和“操作系统”两门全英文授课的课程,徐葳博士具有丰富的大型分布式系统工程经验和项目管理经验,加入清华大学前层在Google总部工作,负责系统日志和监控系统的研发工作,他在清华大学和美国宾夕法尼亚大学完成了本科学业,并在加州大学伯克利分校获得硕士和博士学位。

译者曹锐创现为清华大学交叉信息研究院博士研究生,徐葳博士的学生,目前主要从事云计算与大数据方面的研究。2012年毕业于清华大学计算机科学实验班(“姚班”),并免试获得博士生资格,在校期间多次获得学业和综合**奖励。曾两次赴香港中文大学访问交流,并在惠普中国研究院实习半年,从事智能打印方面的研究。

作者Armando Fox是加州大学伯克利分校计算机科学教授,同时也是该校MOOC实验室的学术顾问。他在斯坦福大学期间获得了由斯坦福大学学生会、女性工程师协会以及国家工程荣誉协会(Tau Beta Pi)颁发的教学与指导奖。他获选2003年的“科学美国人50强”(Scientific American 50),同时还是NSF CAREER奖和美国国家工程院Gilbreth Lectureship奖的获得者。在此之前他参与设计了英特尔奔腾微处理器并创建了一个公司,成功地将他在伯克利进行的移动计算方面的论文研究商业化,其中就包括世界上**个运行在移动设备上的图形Web浏览器(Palm Pilot上的Top GunWingman)。他在麻省理工学院和伊利诺伊大学分别获得了电气工程和计算机科学学位,并获得ACM杰出科学家称号。他也是一位经过古典音乐训练的音乐家和自由音乐总监,以及一个移民到旧金山的同时掌握两种语言和文化(古巴裔美国人)的纽约人。

作者David Patterson是加州大学伯克利分校计算机科学方向的Pardee讲席教授。过去他曾担任伯克利计算机部门的主席、CRA的主席以及美国计算机协会(ACM)主席。他*著名的研究项目是精简指令集计算机(RISC)、磁盘冗余阵列(RAID)以及网络工作站(NOW)。这些研究产生了多篇论文、6本书以及超过35项荣誉,包括入选美国工程院和美国科学院院士,以及硅谷工程名人堂,还有计算机历史博物馆、ACM、IEEE、美国艺术与科学学会(AAAS)、美国科学促进会(AAAS)的会士。他的教学奖项包括卓越教学奖(加州大学伯克利分校)、Karlstrom杰出教育家奖(ACM)、穆里根教育奖章(IEEE)以及本科教学奖(IEEE)。他在加州大学洛杉矶分校获得了所有的学位,学校授予了他杰出工程学术校友奖。他在加州长大,在业余生活中,他和两个成年的儿子共同参加体育赛事,包括每周的足球游戏、年度慈善自行车赛以及短跑三项全能运动,还偶尔参加举重比赛。

目录

第1章 SaaS与敏捷开发介绍

1.1 简介

1.2 SaaS,软件即服务

1.3 面向服务的架构(SOA)

1.4 云计算

1.5 漂亮的代码与遗留代码

1.6 软件质量保证:测试

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

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

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

1.10 本书导览

1.11 如何阅读本书

1.12 谬论和陷阱

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

1.14 深入学习

1.15 建议的练习

**部分 软件即服务

第2章 SaaS应用的架构

2.1 100 000英尺:客户端-服务器架构

2.2 50 000英尺:通信――HTTP和URI

2.3 10 000英尺:表示方法――HTML和CSS

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

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

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

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

2.8 500英尺:模板视图

2.9 谬论和陷阱

2.10 结束语:模式、架构和长寿命的API

2.11 深入学习

2.12 建议的练习

第3章 SaaS架构:针对java编程者的Ruby简介

3.1 概述以及Ruby的三大支柱

3.2 一切都是对象

3.3 每一个操作都是一个方法调用

3.4 类、方法和继承

3.5 所有的编程都是元编程

3.6 块:迭代器、函数式习语和闭包

3.7 mix-in和鸭子类型

3.8 用yield构造自己的迭代器

3.9 谬论和陷阱

3.10 结束语:惯用语言使用

3.11 深入学习

3.12 建议的练习

第4章 SaaS架构:Rails简介

4.1 Rails基础:从0到CRUD

4.2 数据库和迁移

4.3 模型:ActiveRecord基础

4.4 控制器和视图

4.5 调试:当出现错误时

4.6 表单提交:new和create

4.7 重定向和flash

4.8 完成CRUD:编辑/更新和销毁

4.9 谬论和陷阱

4.10 结束语:SOA的设计

4.11 深入学习

4.12 建议的练习

第5章 SaaS框架:Rails高级功能

5.1 去除MVC中的重复:partial、校验和过滤器

5.2 单点登录和第三方认证

5.3 关联和外键

5.4 间接关联:

5.5 关联的REST路由

5.6 可复用作用域的组合查询

5.7 谬论和陷阱

5.8 结束语:语言、生产力和美观

5.9 深入学习

5.10 建议的练习

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

6.1 Javascript:大图景

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

6.3 函数和构造器

6.4 文档对象模型和jQuery

6.5 事件与回调

6.6 AJAX:异步的JavaScript和XML

6.7 测试和调试JavaScnpt与AJAX

6.8 单页面应用和Json API

6.9 谬论和陷阱

6.10 结束语:JavaScript的昨天、今天以及明天

6.11 深入学习

6.12 建议的练习

第二部分 软件开发:敏捷开发与计划文档模式

第7章 需求:行为驱动设计用户故事

7.1 行为驱动设计与用户故事简介

7.2 SMART用户故事

7.3 任务点、速率和Pivotal Tracker

7.4 敏捷开发的成本估计

7.5 Cucumber和Capybara介绍

7.6 运行Cucumber和Capybara

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

7.8 优化Rotten Potatoes

7.9 显式的和隐式的需求、命令式的和声明式的情景

7.10 计划文档的视角

7.11 谬论和陷阱

7.12 结束语:BDD的利与弊

7.13 深入学习

7.14 建议的练习

第8章 软件测试:测试驱动开发

8.1 背景:RESTful应用程序接口和Ruby gem

8.2 FIRST、TDD以及RSpec入门

8.3 TDD周期:红色-绿色-重构

8.4 更多的控制器spec和重构

8.5 夹具和工厂

8.6 面向模型的TDD

8.7 为互联网建立桩

8.8 覆盖率概念、单元测试与集成测试

8.9 其他测试方法和术语

8.10 计划文档的视角

8.11 谬论和陷阱

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

8.13 深入学习

8.14 建议的练习

第9章 软件维护:使用重构和敏捷方法改进遗留软件

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

9.2 探索遗留代码库

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

9.4 注释

9.5 度量、代码味道及SOFA

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

9.7 计划文档的视角

9.8 谬论和陷阱

9.9 结束语:持续的重构

9.10 深入学习

9.11 建议的练习

第10章 项目管理:Serum、结对编程和版本控制系统

10.1 团队规模:两个匹萨大小的团队以及Serum

10.2 结对编程

10.3 敏捷设计和代码评审

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

10.5 有效地使用分支

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

10.7 计划文档的视角

10.8 谬论和陷阱

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

10.10 深入学习

10.11 建议的练习

第11章 SaaS类的设计模式

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

11.2 正好够用的UML

11.3 单一责任原则

11.4 开闭原则

11.5 里氏代换原则

11.6 依赖注入原则

11.7 迪米特法则

11.8 计划文档的视角

11.9 谬论和陷阱

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

11.11 深入学习

11.12 建议的练习

第12章 SaaS非功能性需求:性能、发行、可靠性和实用安全

12.1 从开发到部署

12.2 量化响应性

12.3 持续集成和持续部署

12.4 发行和功能标记

12.5 量化可访问性

12.6 监控和查找瓶颈

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

12.8 避免滥用数据库查询

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

12.10 计划文档的视角

12.11 谬论和陷阱

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

12.13 深入学习

12.14 建议的练习

第13章 后记

13.1 SaaS、SOA、Ruby和Rmls的视角

13.2 回顾过往

13.3 展望未来

13.5 *后的话

13.5 深入学习

附录A 使用本书配套软件

A.1 Beta版本的指导

A.2 本书配套软件概览

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

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

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

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

A.7 开始学习GitHub或ProjecLocker

A.8 使用Heroku部署到云端

A.9 谬论和陷阱

A.10 深入学习