全端Web開發(fā):使用JavaScript與Java.pdf下載

全端Web開發(fā):使用JavaScript與Java.pdf下載

百度網(wǎng)盤:

鏈接:https://pan.baidu.com/s/1fISVdnPm8ZIqC0F34nOBBQ

提取碼:cnot

城通網(wǎng)盤:

https://u1762355.ctfile.com/fs/1762355-365403410


圖靈社區(qū)的電子書沒有采用專有客

戶端,您可以在任意設(shè)備上,用自

己喜歡的瀏覽器和PDF閱讀器進行

閱讀。

但您購買的電子書僅供您個人使用,

未經(jīng)授權(quán),不得進行傳播。

我們愿意相信讀者具有這樣的良知

和覺悟,與我們共同保護知識產(chǎn)權(quán)。

!

如果購買者有侵權(quán)行為,我們可能

對該用戶實施包括但不限于關(guān)閉該

帳號等維權(quán)措施,并可能追究法律

責任。

數(shù)字版權(quán)聲明

圖靈程序設(shè)計叢書

人 民 郵 電 出 版 社

北  京

Client-Server Web

Apps with JavaScript and Java

[美]Casimir Saternos 著

王群鋒 杜歡 譯

全端Web開發(fā)

使用JavaScript與Java

Beijing ? Cambridge ? Farnham ? K?ln ? Sebastopol ? Tokyo

O’Reilly Media, Inc.授權(quán)人民郵電出版社出版

內(nèi) 容 提 要

JavaScript 和Java 這兩大生態(tài)系統(tǒng)之間如何協(xié)同,成為所有Web 開發(fā)人員共同面臨的問題。

本書應(yīng)運而生,全面又簡練地為讀者展示了最新的C/S 應(yīng)用開發(fā)范式。本書以Java 和JavaScript

這兩種最流行的服務(wù)器與客戶端開發(fā)環(huán)境為例,全面講解了最新的C/S 應(yīng)用開發(fā)范式。作者不僅

講解了很多實用的C/S 開發(fā)架構(gòu),還通過各種實例進一步強化了讀者的認知。

這是一本寫給Java 程序員的完整的最新C/S 應(yīng)用開發(fā)范式的指南。

定價:59.00元

讀者服務(wù)熱線:(010)51095186轉(zhuǎn)600 印裝質(zhì)量熱線:(010)81055316

反盜版熱線:(010)81055315

廣告經(jīng)營許可證:京崇工商廣字第 0021 號

著    [美] Casimir Saternos

譯    王群鋒 杜 歡

責任編輯 毛倩倩

執(zhí)行編輯 毛倩倩 岳新欣

責任印制 楊林杰

人民郵電出版社出版發(fā)行  北京市豐臺區(qū)成壽寺路11號

郵編 100164  電子郵件 315@ptpress.com.cn

網(wǎng)址 http://www.ptpress.com.cn

北京      印刷

開本:800×1000 1/16

印張:13.75

字數(shù):326千字 2015年 8 月第 1 版

印數(shù):1 — 3 500冊 2015年 8 月北京第 1次印刷

著作權(quán)合同登記號 圖字:01-2014-8385號

iii

版權(quán)聲明

? 2014 by O’Reilly Media, Inc.

Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Posts & Telecom

Press, 2015. Authorized translation of the English edition, 2015 O’Reilly Media, Inc., the

owner of all rights to publish and sell the same.

All rights reserved including the rights of reproduction in whole or in part in any form.

英文原版由O’Reilly Media, Inc. 出版,2014。

簡體中文版由人民郵電出版社出版, 2015。英文原版的翻譯得到 O’Reilly Media, Inc. 的

授權(quán)。此簡體中文版的出版和銷售得到出版權(quán)和銷售權(quán)的所有者——O’Reilly Media, Inc.

的許可。

版權(quán)所有,未得書面許可,本書的任何部分和全部不得以任何形式重制。

O’Reilly Media 通過圖書、雜志、在線服務(wù)、調(diào)查研究和會議等方式傳播創(chuàng)新知識。

自1978 年開始,O’Reilly 一直都是前沿發(fā)展的見證者和推動者。超級極客們正在開創(chuàng)

著未來,而我們關(guān)注真正重要的技術(shù)趨勢——通過放大那些“細微的信號”來刺激社

會對新科技的應(yīng)用。作為技術(shù)社區(qū)中活躍的參與者,O’Reilly 的發(fā)展充滿了對創(chuàng)新的

倡導、創(chuàng)造和發(fā)揚光大。

O’Reilly 為軟件開發(fā)人員帶來革命性的“動物書”;創(chuàng)建第一個商業(yè)網(wǎng)站(GNN);組

織了影響深遠的開放源代碼峰會,以至于開源軟件運動以此命名;創(chuàng)立了Make 雜志,

從而成為DIY 革命的主要先鋒;公司一如既往地通過多種形式締結(jié)信息與人的紐帶。

O’Reilly 的會議和峰會集聚了眾多超級極客和高瞻遠矚的商業(yè)領(lǐng)袖,共同描繪出開創(chuàng)

新產(chǎn)業(yè)的革命性思想。作為技術(shù)人士獲取信息的選擇,O’Reilly 現(xiàn)在還將先鋒專家的

知識傳遞給普通的計算機用戶。無論是通過書籍出版,在線服務(wù)或者面授課程,每一

項O’Reilly 的產(chǎn)品都反映了公司不可動搖的理念——信息是激發(fā)創(chuàng)新的力量。

業(yè)界評論

“O’Reilly Radar 博客有口皆碑?!?/p>

——Wired

“O’Reilly 憑借一系列(真希望當初我也想到了)非凡想法建立了數(shù)百萬美元的業(yè)務(wù)?!?/p>

——Business 2.0

“O’Reilly Conference 是聚集關(guān)鍵思想領(lǐng)袖的絕對典范?!?/p>

——CRN

“一本O’Reilly 的書就代表一個有用、有前途、需要學習的主題。”

——Irish Times

“Tim 是位特立獨行的商人,他不光放眼于最長遠、最廣闊的視野并且切實地按照

Yogi Berra 的建議去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顧過去

Tim 似乎每一次都選擇了小路,而且有幾次都是一閃即逝的機會,盡管大路也不錯?!?/p>

——Linux Journal

O’Reilly Media, Inc.介紹

v

目錄

前言 ........................................................................................................................................................xiii

第1 章 因變而變 ................................................................................................................................1

1.1 Web 用戶 ....................................................................................................................................2

1.2 技術(shù) .............................................................................................................................................2

1.3 軟件開發(fā) .....................................................................................................................................3

1.4 哪些沒變 .....................................................................................................................................4

1.4.1 Web 的本質(zhì) ....................................................................................................................5

1.4.2 為什么說服務(wù)器驅(qū)動的Web 開發(fā)有害 .......................................................................6

1.5 為什么需要客戶端- 服務(wù)器端的Web 應(yīng)用 ...........................................................................7

1.5.1 代碼組織結(jié)構(gòu)/ 軟件架構(gòu) .............................................................................................7

1.5.2 “設(shè)計的靈活性”與“使用開源API” .........................................................................7

1.5.3 原型 ................................................................................................................................7

1.5.4 開發(fā)者的效率 ................................................................................................................8

1.5.5 應(yīng)用性能 ........................................................................................................................8

1.6 小結(jié) .............................................................................................................................................9

第2 章 JavaScript 和JavaScript 工具 .....................................................................................11

2.1 學習JavaScript .........................................................................................................................12

2.2 JavaScript 的歷史 .....................................................................................................................13

2.3 一門函數(shù)式語言 .......................................................................................................................14

2.3.1 作用域 ..........................................................................................................................15

2.3.2 一級函數(shù) ......................................................................................................................16

2.3.3 函數(shù)聲明和表達式 ......................................................................................................17

2.3.4 函數(shù)調(diào)用 ......................................................................................................................19

vi | 目錄

2.3.5 函數(shù)參數(shù) ......................................................................................................................19

2.3.6 對象 ..............................................................................................................................20

2.4 面向Java 開發(fā)者的JavaScript ................................................................................................20

2.4.1 HelloWord.java .............................................................................................................20

2.4.2 帶變量的HelloWord.java ............................................................................................23

2.5 最佳開發(fā)實踐 ...........................................................................................................................25

2.5.1 編碼規(guī)范和約定 ..........................................................................................................25

2.5.2 瀏覽器 ..........................................................................................................................26

2.5.3 集成開發(fā)環(huán)境 ..............................................................................................................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 統(tǒng)一資源標識符 ..........................................................................................................35

3.2 REST 約束 ................................................................................................................................36

3.2.1 客戶端- 服務(wù)器端 ......................................................................................................36

3.2.2 無狀態(tài) ..........................................................................................................................36

3.2.3 可緩存 ..........................................................................................................................37

3.2.4 統(tǒng)一接口 ......................................................................................................................37

3.2.5 分層 ..............................................................................................................................38

3.2.6 按需交付代碼 ..............................................................................................................38

3.3 HTTP 響應(yīng)代碼 ........................................................................................................................38

3.4 JSON .........................................................................................................................................39

3.5 HATEOAS ................................................................................................................................40

3.6 API 衡量和分類 .......................................................................................................................43

3.7 函數(shù)式編程和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 構(gòu)建工具 ...................................................................................................................................52

4.4.1 Maven 的優(yōu)點 ..............................................................................................................54

目錄 | vii

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 小結(jié) ...........................................................................................................................................62

第5 章 客戶端框架 .........................................................................................................................65

5.1 概述 ...........................................................................................................................................65

5.2 起點一:響應(yīng)式Web 設(shè)計 .....................................................................................................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 從入門網(wǎng)站下載 ..........................................................................................................71

5.4.3 IDE 生成的起始項目 ...................................................................................................72

5.5 前端工程師的崛起 ...................................................................................................................72

5.5.1 客戶端模板 ..................................................................................................................72

5.5.2 資源管道 ......................................................................................................................73

5.5.3 開發(fā)流程 ......................................................................................................................74

5.6 項目 ...........................................................................................................................................74

5.7 小結(jié) ...........................................................................................................................................76

第6 章 Java Web API 服務(wù)器 .....................................................................................................77

6.1 更簡單的服務(wù)器端解決方案 ...................................................................................................77

6.2 基于Java 的服務(wù)器 ..................................................................................................................79

6.2.1 Java HTTP 服務(wù)器 .......................................................................................................79

6.2.2 Jetty 嵌入式服務(wù)器 ......................................................................................................81

6.2.3 Restlet ...........................................................................................................................82

6.2.4 Roo ................................................................................................................................83

6.2.5 Netty 嵌入式服務(wù)器.....................................................................................................87

6.2.6 Play 服務(wù)器 ..................................................................................................................89

6.2.7 其他輕量級服務(wù)器 ......................................................................................................92

viii | 目錄

6.3 基于JVM 的服務(wù)器 .................................................................................................................92

6.4 Web 應(yīng)用服務(wù)器 ......................................................................................................................93

6.5 如何在開發(fā)中使用 ...................................................................................................................94

6.6 小結(jié) ...........................................................................................................................................94

第7 章  快速開發(fā)實踐 ....................................................................................................................95

7.1 開發(fā)者的生產(chǎn)率 .......................................................................................................................95

7.2 優(yōu)化開發(fā)者和團隊的工作流程 ...............................................................................................98

7.2.1 例子:修復Web 應(yīng)用 .................................................................................................99

7.2.2 例子:測試集成 ........................................................................................................100

7.2.3 例子:綠地開發(fā) ........................................................................................................101

7.3 生產(chǎn)率和軟件開發(fā)生命周期 .................................................................................................101

7.3.1 管理方式和企業(yè)文化 ................................................................................................102

7.3.2 技術(shù)架構(gòu) ....................................................................................................................102

7.3.3 軟件工具 ....................................................................................................................103

7.3.4 性能 ............................................................................................................................104

7.3.5 測試 ............................................................................................................................104

7.3.6 底層平臺 ....................................................................................................................105

7.4 小結(jié) .........................................................................................................................................106

第8 章 API 設(shè)計 ............................................................................................................................107

8.1 設(shè)計的起點 .............................................................................................................................108

8.2 實用的Web API 與REST API ..............................................................................................109

8.3 指引 .........................................................................................................................................110

8.3.1 名詞即資源,動詞即HTTP 行為 ............................................................................110

8.3.2 請求參數(shù)作為修飾符 ................................................................................................ 111

8.3.3 Web API 版本 .............................................................................................................112

8.3.4 HTTP 標頭 .................................................................................................................113

8.3.5 鏈接 ............................................................................................................................113

8.3.6 響應(yīng) ............................................................................................................................113

8.3.7 文檔 ............................................................................................................................113

8.3.8 格式約定 ....................................................................................................................114

8.3.9 安全性 ........................................................................................................................114

8.4 項目 .........................................................................................................................................114

8.4.1 運行項目 ....................................................................................................................114

8.4.2 服務(wù)端代碼 ................................................................................................................115

8.4.3 Curl 和jQuery ............................................................................................................117

8.5 實踐理論 .................................................................................................................................118

目錄 | ix

第9 章 jQuery 和Jython .............................................................................................................119

9.1 服務(wù)端:Jython ......................................................................................................................120

9.1.1 Python Web 服務(wù)器 ....................................................................................................120

9.1.2 Jython Web 服務(wù)器 .....................................................................................................120

9.1.3 Mock API ....................................................................................................................121

9.2 客戶端:jQuery ......................................................................................................................122

9.2.1 DOM 遍歷和操作 ......................................................................................................122

9.2.2 實用函數(shù) ....................................................................................................................123

9.2.3 效果 ............................................................................................................................124

9.2.4 事件處理 ....................................................................................................................124

9.2.5 Ajax .............................................................................................................................124

9.3 jQuery 和更高級的抽象 .........................................................................................................125

9.4 項目 .........................................................................................................................................125

9.4.1 基礎(chǔ)HTML ................................................................................................................126

9.4.2 JavaScript 和jQuery ...................................................................................................126

9.5 小結(jié) .........................................................................................................................................128

第10 章 JRuby 和Angular ........................................................................................................129

10.1 服務(wù)器端: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 服務(wù) .........................................................................................................................136

10.3 比較jQuery 和Angular ........................................................................................................136

10.3.1 DOM 和模型操作 ...................................................................................................136

10.3.2 Angular 的不可見性 ...............................................................................................137

10.4 項目 .......................................................................................................................................137

10.5 小結(jié) .......................................................................................................................................143

第11 章 打包和部署 .....................................................................................................................145

11.1 打包Java 和JEE 應(yīng)用 .........................................................................................................145

11.2 JEE 應(yīng)用的部署 ...................................................................................................................147

x | 目錄

11.2.1 圖形界面管理 .........................................................................................................148

11.2.2 命令行管理 .............................................................................................................150

11.3 非JEE 應(yīng)用的部署 ..............................................................................................................151

11.3.1 服務(wù)器在應(yīng)用之外 .................................................................................................152

11.3.2 服務(wù)器和應(yīng)用并行 .................................................................................................152

11.3.3 服務(wù)器在應(yīng)用里面 .................................................................................................154

11.4 不同部署方式帶來的影響 ...................................................................................................154

11.4.1 負載均衡 .................................................................................................................155

11.4.2 自動化應(yīng)用部署 .....................................................................................................156

11.5 項目 .......................................................................................................................................157

11.5.1 客戶端 .....................................................................................................................157

11.5.2 服務(wù)器端 .................................................................................................................158

11.6 小結(jié) .......................................................................................................................................158

第12 章 虛擬化 ..............................................................................................................................159

12.1 全虛擬化 ...............................................................................................................................159

12.2 虛擬機的實現(xiàn) .......................................................................................................................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

12.5.1 Docker 幫助 ............................................................................................................166

12.5.2 鏡像和容器的維護 .................................................................................................166

12.5.3 在Docker 里使用Java ...........................................................................................167

12.5.4 Docker 和Vagrant 的網(wǎng)絡(luò)設(shè)置 ..............................................................................169

12.6 小結(jié) .......................................................................................................................................170

第13 章 測試和文檔 .....................................................................................................................171

13.1 測試的種類 ...........................................................................................................................172

13.1.1 “正式”與“非正式” .............................................................................................172

13.1.2 測試范圍 .................................................................................................................172

13.1.3 誰來測?測什么?為誰測 .....................................................................................173

13.2 測試反映了組織的成熟度 ...................................................................................................173

目錄 | xi

13.2.1 使用軟件能力成熟度模型評價流程 .....................................................................173

13.2.2 使用Maven 促進流程統(tǒng)一 ....................................................................................174

13.2.3 使用行為驅(qū)動開發(fā)促進流程統(tǒng)一 .........................................................................176

13.3 測試框架 ...............................................................................................................................176

13.3.1 JUnit ........................................................................................................................177

13.3.2 Jasmine ....................................................................................................................177

13.3.3 Cucumber ................................................................................................................178

13.4 項目 .......................................................................................................................................179

13.4.1 JUnit ........................................................................................................................180

13.4.2 Jasmine ....................................................................................................................180

13.4.3 Cucumber ................................................................................................................181

13.4.4 Maven 報告 .............................................................................................................181

13.5 小結(jié) .......................................................................................................................................182

第14 章 總結(jié) ..................................................................................................................................183

14.1 社區(qū) .......................................................................................................................................183

14.2 歷史 .......................................................................................................................................184

14.3 尾聲 .......................................................................................................................................184

附錄A JRuby IRB 及Java API ................................................................................................185

附錄B REST 式的Web API 總結(jié) ............................................................................................191

附錄C 參考文獻 ............................................................................................................................196

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容