本書介紹了 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