SaaS軟件工程(雲計算時代的敏捷開發) SaaS软件工程:云计算时代的敏捷开发

福克斯 (Armando Fox), 帕特森 (David Patterson)

買這商品的人也買了...

商品描述

 

<內容簡介>

《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  深入學習