SaaS軟件工程(雲計算時代的敏捷開發)
內容描述
<內容簡介>
《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 深入學習