SaaS軟件工程(雲計算時代的敏捷開發)

SaaS軟件工程(雲計算時代的敏捷開發)

作者: 福克斯 (Armando Fox) 帕特森 (David Patterson)
出版社: 清華大學
出版在: 2015-06-01
ISBN-13: 9787302399674
ISBN-10: 7302399670
裝訂格式: 平裝
總頁數: 456 頁





內容描述


<內容簡介>
《SaaS軟件工程(雲計算時代的敏捷開發)》介紹了21世紀以來軟件工程的兩個新的發展方向——軟件即服務和敏捷開發。本書第一部分介紹了軟件即服務及其相關的編程環境,包括Ruby、Rails和JavaScript等內容;第二部分介紹了現代軟件開發並強調了敏捷開發相關技術,包括行為驅動和測試驅動的設計與開發,遺留代碼處理,項目團隊管理,設計模式,軟件架構等內容,並給出了許多有用的建議。本書的作者Armando Fox(福克斯)和David Patterson(帕特森)不僅在電腦科學領域建樹頗豐,而且在軟件工程方面也有著豐富的教學和研究實踐經驗。他們將軟件即服務和敏捷開發的內容與具體的實例相結合,完成了這本內容豐富且易於學習的書。我們希望本書能夠幫助你通過實踐學到軟件開發的知識與技能,並能開發出漂亮而持久的軟件。  

<章節目錄>
第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  深入學習




相關書籍

UML軟件建模任務驅動教程(第3版)

作者 陳承歡

2015-06-01

Designing Software Architectures: A Practical Approach (SEI Series in Software Engineering)(Hardcover)

作者 Humberto Cervantes Rick Kazman

2015-06-01

Beginning Java 17 Fundamentals: Object-Oriented Programming in Java 17

作者 Sharan Kishori Davis Adam L.

2015-06-01