編輯推薦
近幾年來,用戶習慣、技術和開發方法極大地改變瞭Web應用的設計,但是Web本身並沒有變化。本書展示瞭如何開發齣遵循Web底層架構的應用。
作為一名Java程序員,在以客戶端-服務器端架構開發Web應用時,如何應對各種難題?這本內容詳盡的指南將告訴你如何使用各種Java工具、客戶端技術和Web API開發Web應用。作者首先概括瞭客戶端-服務器端技術,然後詳細介紹瞭很多實用的客戶端-服務器端架構。你將在多個章節中參與到實戰項目中,從而獲得對相應技術和主題的一手經驗。
通過閱讀本書,你將會
瞭解客戶端和服務器端分層的好處,包括代碼組織和快速原型開發;
探索JavaScript開發中用到的各種主流工具、框架和起點項目;
深入學習Web API設計和REST風格的軟件架構;
瞭解有彆於傳統打包方法的各種Java打包方式,以及應用服務器的部署;
使用輕量級服務器構建項目,涉及jQuery和Jython、Sinatra和Angular;
使用傳統Java Web應用服務器和類庫構建客戶端-服務器端Web應用。
內容簡介
JavaScript和Java這兩大生態係統之間如何協同,成為所有Web開發人員共同麵臨的問題。本書應運而生,全麵又簡練地為讀者展示瞭全新的C/S應用開發範式。本書以Java和JavaScript這兩種流行的服務器與客戶端開發環境為例,全麵講解瞭全新的C/S應用開發範式。作者不僅講解瞭很多實用的C/S開發架構,還通過各種實例進一步強化瞭讀者的認知。
作者簡介
Casimir Staternos是Synchronoss Technologies公司軟件架構師,有十餘年軟件開發經驗。曾在Java Magazine和Oracle Technology Network上發錶過技術文章,可在Pluralsight(www.pluralsight.com)上觀看他錄製的Peepcode播客視頻。他目前主要使用Java、Ruby等技術從事Web應用開發。
內頁插圖
精彩書評
“隨著客戶端-服務器端架構嚮瀏覽器遷移,現在的程序員麵臨著來自新技術和架構的挑戰。這本書直搗這一復雜性的核心,將Web應用開發的現狀直接呈現在讀者眼前。”
——Tony Powell
Trifecta Technologies公司的技術方案負責人
目錄
前言 xiii
第1 章 因變而變 1
1.1 Web 用戶 2
1.2 技術 2
1.3 軟件開發 3
1.4 哪些沒變 4
1.4.1 Web 的本質 5
1.4.2 為什麼說服務器驅動的Web 開發有害 6
1.5 為什麼需要客戶端- 服務器端的Web 應用 7
1.5.1 代碼組織結構/ 軟件架構 7
1.5.2 “設計的靈活性”與“使用開源API” 7
1.5.3 原型 7
1.5.4 開發者的效率 8
1.5.5 應用性能 8
1.6 小結 9
第2 章 JavaScript 和JavaScript 工具 11
2.1 學習JavaScript 12
2.2 JavaScript 的曆史 13
2.3 一門函數式語言 14
2.3.1 作用域 15
2.3.2 一級函數 16
2.3.3 函數聲明和錶達式 17
2.3.4 函數調用 19
2.3.5 函數參數 19
2.3.6 對象 20
2.4 麵嚮Java 開發者的JavaScript 20
2.4.1 HelloWord.java 20
2.4.2 帶變量的HelloWord.java 23
2.5 最佳開發實踐 25
2.5.1 編碼規範和約定 25
2.5.2 瀏覽器 26
2.5.3 集成開發環境 26
2.5.4 單元測試 27
2.5.5 文檔 27
2.6 項目 27
第3 章 REST 和JSON 33
3.1 什麼是REST 34
3.1.1 資源 34
3.1.2 動詞(HTTP 請求) 34
3.1.3 統一資源標識符 35
3.2 REST 約束 36
3.2.1 客戶端- 服務器端 36
3.2.2 狀態 36
3.2.3 可緩存 37
3.2.4 統一接口 37
3.2.5 分層 38
3.2.6 按需交付代碼 38
3.3 HTTP 響應代碼 38
3.4 JSON 39
3.5 HATEOAS 40
3.6 API 衡量和分類 43
3.7 函數式編程和REST 43
3.8 項目 44
3.9 其他Web API 工具 48
3.10 約束迴顧 48
第4 章 Java 工具 49
4.1 Java 語言 49
4.2 Java 虛擬機 50
4.3 Java 工具 51
4.4 構建工具 52
4.4.1 Maven 的優點 54
4.4.2 Maven 的功能 54
4.4.3 版本控製 55
4.4.4 單元測試 56
4.5 處理JSON 的Java 類庫 56
4.6 項目 57
4.6.1 用Java 處理JSON 57
4.6.2 用JVM 上的腳本語言處理JSON 59
4.7 小結 62
第5 章 客戶端框架 65
5.1 概述 65
5.2 起點一:響應式Web 設計 67
5.2.1 HTML5 Boilerplate 68
5.2.2 Bootstrap 68
5.3 起點二:JavaScript 庫和框架 69
5.3.1 瀏覽器兼容性 69
5.3.2 框架 69
5.3.3 功能 70
5.3.4 流行程度 70
5.4 獲取起始項目 71
5.4.1 直接從倉庫下載 71
5.4.2 從入門網站下載 71
5.4.3 IDE 生成的起始項目 72
5.5 前端工程師的崛起 72
5.5.1 客戶端模闆 72
5.5.2 資源管道 73
5.5.3 開發流程 74
5.6 項目 74
5.7 小結 76
第6 章 Java Web API 服務器 77
6.1 更簡單的服務器端解決方案 77
6.2 基於Java 的服務器 79
6.2.1 Java HTTP 服務器 79
6.2.2 Jetty 嵌入式服務器 81
6.2.3 Restlet 82
6.2.4 Roo 83
6.2.5 Netty 嵌入式服務器 87
6.2.6 Play 服務器 89
6.2.7 其他輕量級服務器 92
6.3 基於JVM 的服務器 92
6.4 Web 應用服務器 93
6.5 如何在開發中使用94
6.6 小結 94
第7 章 快速開發實踐 95
7.1 開發者的生産率 95
7.2 優化開發者和團隊的工作流程 98
7.2.1 例子:修復Web 應用 99
7.2.2 例子:測試集成 100
7.2.3 例子:綠地開發 101
7.3 生産率和軟件開發生命周期 101
7.3.1 管理方式和企業文化 102
7.3.2 技術架構 102
7.3.3 軟件工具 103
7.3.4 性能 104
7.3.5 測試 104
7.3.6 底層平颱 105
7.4 小結 106
第8 章 API 設計 107
8.1 設計的起點 108
8.2 實用的Web API 與REST API 109
8.3 指引 110
8.3.1 名詞即資源,動詞即HTTP 行為 110
8.3.2 請求參數作為修飾符 111
8.3.3 Web API 版本 112
8.3.4 HTTP 標頭 113
8.3.5 鏈接 113
8.3.6 響應 113
8.3.7 文檔 113
8.3.8 格式約定 114
8.3.9 安全性 114
8.4 項目 114
8.4.1 運行項目 114
8.4.2 服務端代碼 115
8.4.3 Curl 和jQuery 117
8.5 實踐理論 118
第9 章 jQuery 和Jython 119
9.1 服務端:Jython 120
9.1.1 Python Web 服務器 120
9.1.2 Jython Web 服務器 120
9.1.3 Mock API 121
9.2 客戶端:jQuery 122
9.2.1 DOM 遍曆和操作 122
9.2.2 實用函數 123
9.2.3 效果 124
9.2.4 事件處理 124
9.2.5 Ajax 124
9.3 jQuery 和更高級的抽象 125
9.4 項目 125
9.4.1 基礎HTML 126
9.4.2 JavaScript 和jQuery 126
9.5 小結 128
第10章 JRuby 和Angular 129
10.1 服務器端:JRuby 和Sinatra 130
10.1.1 工作流 130
10.1.2 交互式Ruby shell 131
10.1.3 Ruby 版本管理器 131
10.1.4 包 132
10.1.5 Sinatra 133
10.1.6 JSON 處理 134
10.2 客戶端:AngularJS 135
10.2.1 模型 135
10.2.2 視圖 135
10.2.3 控製器 136
10.2.4 服務 136
10.3 比較jQuery 和Angular 136
10.3.1 DOM 和模型操作 136
10.3.2 Angular 的不可見性 137
10.4 項目 137
10.5 小結 143
第11 章 打包和部署 145
11.1 打包Java 和JEE 應用 145
11.2 JEE 應用的部署 147
11.2.1 圖形界麵管理 148
11.2.2 命令行管理 150
11.3 非JEE 應用的部署 151
11.3.1 服務器在應用之外 152
11.3.2 服務器和應用並行 152
11.3.3 服務器在應用裏麵 154
11.4 不同部署方式帶來的影響 154
11.4.1 負載均衡 155
11.4.2 自動化應用部署 156
11.5 項目 157
11.5.1 客戶端 157
11.5.2 服務器端 158
11.6 小結 158
第12 章 虛擬化 159
12.1 全虛擬化 159
12.2 虛擬機的實現 161
12.2.1 VMWare 161
12.2.2 VirtualBox 161
12.2.3 Amazon EC2 161
12.3 虛擬機的管理 162
12.3.1 Vagrant 162
12.3.2 Packer 162
12.3.3 DevOps 配置管理 163
12.4 容器 163
12.4.1 LXC 164
12.4.2 Docker 164
12.5 項目165
前言/序言
全端Web開發 使用JavaScript與Java 下載 mobi epub pdf txt 電子書