全端Web開發(使用JavaScript與Java)
內容描述
<內容簡介>
JavaScript和Java這兩大生態系統之間如何協同,成為所有Web開發人員共同面臨的問題。薩特諾斯編著的《全端Web開發》應運而生,全面又簡練地為讀者展示了最新的C∕S應用開發範式。本書以Java和JavaScript這兩種最流行的服務器與客戶端開發環境為例,全面講解了最新的C∕S應用開發範式。作者不僅講解了很多實用的C∕S開發架構,還通過各種實例進一步強化了讀者的認知。這是一本寫給Java程序員的完整的最新C∕S應用開發範式的指南。
<章節目錄>
前言第1章 因變而變 1.1 Web用戶 1.2 技術 1.3 軟件開發 1.4 哪些沒變 1.4.1 Web的本質 1.4.2 為什麼說服務器驅動的Web開發有害 1.5 為什麼需要客戶端-服務器端的Web應用 1.5.1 代碼組織結構/軟件架構 1.5.2 「設計的靈活性」與「使用開源API」 1.5.3 原型 1.5.4 開發者的效率 1.5.5 應用性能 1.6 小結第2章 JavaScript和JavaScript工具 2.1 學習JavaScript 2.2 JavaScript的歷史 2.3 一門函數式語言 2.3.1 作用域 2.3.2 一級函數 2.3.3 函數聲明和表達式 2.3.4 函數調用 2.3.5 函數參數 2.3.6 對象 2.4 面向Java開發者的JavaScript 2.4.1 HelloWord.java 2.4.2 帶變量的HelloWord.java 2.5 最佳開發實踐 2.5.1 編碼規範和約定 2.5.2 瀏覽器 2.5.3 集成開發環境 2.5.4 單元測試 2.5.5 文檔 2.6 項目第3章 REST和JSON 3.1 什麼是REST 3.1.1 資源 3.1.2 動詞(HTTP請求) 3.1.3 統一資源標識符 3.2 REST約束 3.2.1 客戶端-服務器端 3.2.2 無狀態 3.2.3 可緩存 3.2.4 統一接口 3.2.5 分層 3.2.6 按需交付代碼 3.3 HTTP響應代碼 3.4 JSON 3.5 HATEOAS
3.6 API衡量和分類 3.7 函數式編程和REST 3.8 項目 3.9 其他WebAPI工具 3.10 約束回顧第4章 Java工具 4.1 Java語言 4.2 Java虛擬機 4.3 Java工具 4.4 構建工具 4.4.1 Maven的優點 4.4.2 Maven的功能 4.4.3 版本控制 4.4.4 單元測試 4.5 處理JSON的Java類庫 4.6 項目 4.6.1 用Java處理JSON 4.6.2 用JVM上的腳本語言處理JSON 4.7 小結第5章 客戶端框架 5.1 概述 5.2 起點一:響應式Web設計 5.2.1 HTML5Boilerplate 5.2.2 Bootstrap 5.3 起點二:JavaScript庫和框架 5.3.1 瀏覽器兼容性 5.3.2 框架 5.3.3 功能 5.3.4 流行程度 5.4 獲取起始項目 5.4.1 直接從倉庫下載 5.4.2 從入門網站下載 5.4.3 IDE生成的起始項目 5.5 前端工程師的崛起 5.5.1 客戶端模板 5.5.2 資源管道 5.5.3 開發流程 5.6 項目 5.7 小結第6章 JavaWebAPI服務器 6.1 更簡單的服務器端解決方案 6.2 基於Java的服務器 6.2.1 JavaHTTP服務器 6.2.2 Jetty嵌入式服務器 6.2.3 Restlet 6.2.4 Roo 6.2.5 Netty嵌入式服務器 6.2.6 Play服務器 6.2.7 其他輕量級服務器 6.3 基於JVM的服務器
6.4 Web應用服務器 6.5 如何在開發中使用 6.6 小結第7章 快速開發實踐 7.1 開發者的生產率 7.2 優化開發者和團隊的工作流程 7.2.1 例子:修復Web應用 7.2.2 例子:測試集成 7.2.3 例子:綠地開發 7.3 生產率和軟件開發生命周期 7.3.1 管理方式和企業文化 7.3.2 技術架構 7.3.3 軟件工具 7.3.4 性能 7.3.5 測試 7.3.6 底層平臺 7.4 小結第8章 API設計 8.1 設計的起點 8.2 實用的WebAPI與RESTAPI 8.3 指引 8.3.1 名詞即資源,動詞即HTTP行為 8.3.2 請求參數作為修飾符 8.3.3 WebAPI版本 8.3.4 HTTP標頭 8.3.5 鏈接 8.3.6 響應 8.3.7 文檔 8.3.8 格式約定 8.3.9 安全性 8.4 項目 8.4.1 運行項目 8.4.2 服務端代碼 8.4.3 Curl和jQuery 8.5 實踐理論第9章 jQuery和Jython 9.1 服務端:Jython 9.1.1 PythonWeb服務器 9.1.2 JythonWeb服務器 9.1.3 MockAPI 9.2 客戶端:jQuery 9.2.1 DOM遍歷和操作 9.2.2 實用函數 9.2.3 效果 9.2.4 事件處理 9.2.5 Ajax 9.3 jQuery和更高級的抽象 9.4 項目 9.4.1 基礎HTML 9.4.2 JavaScript和jQuery
9.5 小結第10章 JRuby和Angular 10.1 服務器端:JRuby和Sinatra 10.1.1 工作流 10.1.2 交互式Rubyshell 10.1.3 Ruby版本管理器 10.1.4 包 10.1.5 Sinatra 10.1.6 JSON處理 10.2 客戶端:AngularJS 10.2.1 模型 10.2.2 視圖 10.2.3 控制器 10.2.4 服務 10.3 比較jQuery和Angular 10.3.1 DOM和模型操作 10.3.2 Angular的不可見性 10.4 項目 10.5 小結第11章 打包和部署 11.1 打包Java和JEE應用 11.2 JEE應用的部署 11.2.1 圖形界面管理 11.2.2 命令行管理 11.3 非JEE應用的部署 11.3.1 服務器在應用之外 11.3.2 服務器和應用並行 11.3.3 服務器在應用裡面 11.4 不同部署方式帶來的影響 11.4.1 負載均衡 11.4.2 自動化應用部署 11.5 項目 11.5.1 客戶端 11.5.2 服務器端 11.6 小結第12章 虛擬化 12.1 全虛擬化 12.2 虛擬機的實現 12.2.1 VMWare 12.2.2 VirtualBox 12.2.3 AmazonEC 12.3 虛擬機的管理 12.3.1 Vagrant 12.3.2 Packer 12.3.3 DevOps配置管理 12.4 容器 12.4.1 LXC 12.4.2 Docker 12.5 項目 12.5.1 Docker幫助
12.5.2 鏡像和容器的維護 12.5.3 在Docker里使用Java 12.5.4 Docker和vagrant的網絡設置 12.6 小結第13章 測試和文檔 13.1 測試的種類 13.1.1 「正式」與「非正式」 13.1.2 測試範圍 13.1.3 誰來測?測什麼?為誰測 13.2 測試反映了組織的成熟度 13.2.1 使用軟件能力成熟度模型評價流程 13.2.2 使用Maven促進流程統 13.2.3 使用行為驅動開發促進流程統 13.3 測試框架 13.3.1 JUnit 13.3.2 Jasmine 13.3.3 Cucumber 13.4 項目 13.4.1 JUnit 13.4.2 Jasmine 13.4.3 Cucumber 13.4.4 Maven報告 13.5 小結第14章 總結 14.1 社區 14.2 歷史 14.3 尾聲附錄A JRubyIRB及JavaAPI總結附錄B REST式的WebAPl總結附錄C 參考文獻關於作者關於封面圖