全端Web开发 使用JavaScript与Java
出版时间: 2015
JavaScript和Java这两大生态系统之间如何协同,成为所有Web开发人员共同面临的问题。本书应运而生,全面又简练地为读者展示了最新的C/S应用开发范式。本书以Java和JavaScript这两种最流行的服务器与客户端开发环境为例,全面讲解了最新的C/S应用开发范式。作者不仅讲解了很多实用的C/S开发架构,还通过各种实例进一步强化了读者的认知。
目录
- 前言 xiii
- 第1 章因变而变 1
- 1.1Web 用户 2
- 1.2技术 2
- 1.3软件开发 3
- 1.4哪些没变 4
- 1.4.1Web 的本质 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.2JavaScript 的历史 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.1HelloWord.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.2REST 约束 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.3HTTP 响应代码 38
- 3.4JSON 39
- 3.5HATEOAS 40
- 3.6API 衡量和分类 43
- 3.7函数式编程和REST 43
- 3.8项目 44
- 3.9其他Web API 工具 48
- 3.10约束回顾 48
- 第4 章Java 工具 49
- 4.1Java 语言 49
- 4.2Java 虚拟机 50
- 4.3Java 工具 51
- 4.4构建工具 52
- 4.4.1Maven 的优点 54
- 4.4.2Maven 的功能 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.1HTML5 Boilerplate 68
- 5.2.2Bootstrap 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.3IDE 生成的起始项目 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.1Java HTTP 服务器 79
- 6.2.2Jetty 嵌入式服务器 81
- 6.2.3Restlet 82
- 6.2.4Roo 83
- 6.2.5Netty 嵌入式服务器 87
- 6.2.6Play 服务器 89
- 6.2.7其他轻量级服务器 92
- 6.3基于JVM 的服务器 92
- 6.4Web 应用服务器 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.3Web API 版本 112
- 8.3.4HTTP 标头 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.3Curl 和jQuery 117
- 8.5实践理论 118
- 第9 章jQuery 和Jython 119
- 9.1服务端:Jython 120
- 9.1.1Python Web 服务器 120
- 9.1.2Jython Web 服务器 120
- 9.1.3Mock API 121
- 9.2客户端:jQuery 122
- 9.2.1DOM 遍历和操作 122
- 9.2.2实用函数 123
- 9.2.3效果 124
- 9.2.4事件处理 124
- 9.2.5Ajax 124
- 9.3jQuery 和更高级的抽象 125
- 9.4项目 125
- 9.4.1基础HTML 126
- 9.4.2JavaScript 和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.3Ruby 版本管理器 131
- 10.1.4包 132
- 10.1.5Sinatra 133
- 10.1.6JSON 处理 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.1DOM 和模型操作 136
- 10.3.2Angular 的不可见性 137
- 10.4项目 137
- 10.5小结 143
- 第11 章打包和部署 145
- 11.1打包Java 和JEE 应用 145
- 11.2JEE 应用的部署 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.1VMWare 161
- 12.2.2VirtualBox 161
- 12.2.3Amazon EC2 161
- 12.3虚拟机的管理 162
- 12.3.1Vagrant 162
- 12.3.2Packer 162
- 12.3.3DevOps 配置管理 163
- 12.4容器 163
- 12.4.1LXC 164
- 12.4.2Docker 164
-
12.5项目165