JavaScript和Java这两大生态系统之间如何协同,成为所有Web开发人员共同面临的问题。本书应运而生,全面又简练地为读者展示了最新的C/S应用开发范式。本书以Java和JavaScript这两种最流行的服务器与客户端开发环境为例,全面讲解了最新的C/S应用开发范式。作者不仅讲解了很多实用的C/S开发架构,还通过各种实例进一步强化了读者的认知。
前言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 学习JavaScript12
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开发者的JavaScript20
2.4.1 HelloWord.java20
2.4.2 带变量的HelloWord.java23
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和JSON33
3.1 什么是REST34
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 JSON39
3.5 HATEOAS40
3.6 API衡量和分类43
3.7 函数式编程和REST43
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处理JSON57
4.6.2 用JVM上的脚本语言处理JSON59
4.7 小结62
第5章 客户端框架65
5.1 概述65
5.2 起点一:响应式Web设计67
5.2.1 HTML5 Boilerplate68
5.2.2 Bootstrap68
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 Restlet82
6.2.4 Roo83
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 API109
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和jQuery117
8.5 实践理论118
第9章 jQuery和Jython119
9.1 服务端:Jython120
9.1.1 Python Web服务器120
9.1.2 Jython Web服务器120
9.1.3 Mock API121
9.2 客户端:jQuery122
9.2.1 DOM遍历和操作122
9.2.2 实用函数123
9.2.3 效果124
9.2.4 事件处理124
9.2.5 Ajax124
9.3 jQuery和更高级的抽象125
9.4 项目125
9.4.1 基础HTML126
9.4.2 JavaScript和jQuery126
9.5 小结128
第10章 JRuby和Angular129
10.1 服务器端:JRuby和Sinatra130
10.1.1 工作流130
10.1.2 交互式Ruby shell131
10.1.3 Ruby版本管理器131
10.1.4 包132
10.1.5 Sinatra133
10.1.6 JSON处理134
10.2 客户端:AngularJS135
10.2.1 模型135
10.2.2 视图135
10.2.3 控制器136
10.2.4 服务136
10.3 比较jQuery和Angular136
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 VMWare161
12.2.2 VirtualBox161
12.2.3 Amazon EC2161
12.3 虚拟机的管理162
12.3.1 Vagrant162
12.3.2 Packer162
12.3.3 DevOps配置管理163
12.4 容器163
12.4.1 LXC164
12.4.2 Docker164
12.5 项目165
12.5.1 Docker帮助166
12.5.2 镜像和容器的维护166
12.5.3 在Docker里使用Java167
12.5.4 Docker和Vagrant 的网络设置169
12.6 小结170
第13章 测试和文档171
13.1 测试的种类172
13.1.1 “正式”与“非正式”172
13.1.2 测试范围172
13.1.3 谁来测?测什么?为谁测173
13.2 测试反映了组织的成熟度173
13.2.1 使用软件能力成熟度模型评价流程173
13.2.2 使用Maven促进流程统一174
13.2.3 使用行为驱动开发促进流程统一176
13.3 测试框架176
13.3.1 JUnit177
13.3.2 Jasmine177
13.3.3 Cucumber178
13.4 项目179
13.4.1 JUnit180
13.4.2 Jasmine180
13.4.3 Cucumber181
13.4.4 Maven报告181
13.5 小结182
第14章 总结183
14.1 社区183
14.2 历史184
14.3 尾声184
附录A JRuby IRB及Java API185
附录B REST式的Web API总结191
附录C 参考文献196
关于作者197
关于封面图197
《ASP.NET4高级程序设计(第4版)》,本书是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许
《Excel函数与公式标准教程:实战微课版》内容简介:《Excel函数与公式标准教程(实战微课版)》以微型实用办公案例的形式,对Exce
让你的PPT会说话 本书特色 适读人群 :1.已初步掌握PPT基本操作,急待提升的职场白领 2.要用PPT打动别人的培训师和学校老师 3.即将走上社会需要快速掌...
是的,你可以用Ajax开发企业级应用!随着Web逐渐成为主流计算平台,越来越多关键任务应用开始采用Ajax技术构造。但是,挑战也是巨
《思想的浮冰》内容简介:拥有儒家价值的范导,并不能保证我们的生活无懈可击,但失去儒家价值的范导,却注定了我们的生活会一无是
《爱上制作1》内容简介:主打的主题是低碳生活,让你坐在家里也能打造一个可持续的未来。自制一台纯木制的洗衣桶、自制低功率的可
《果实和种子类中草药彩色图鉴》内容简介:本书收载了常用果实和种子类中草药120种,详细介绍了每种中草药的别名、来源、产地、采收
《滇金丝猴生活史》内容简介:《滇金丝猴生活史》记述了中科院灵长类生态学研究组长达14年的研究经历,向公众展现滇金丝猴的神秘世
《佛罗伦萨乌菲齐美术馆》内容简介:“伟大的博物馆少年版”系列图书以博物馆为依托,在内容编写上融合了博物馆与相关国家、城市的
《华为战略解码》内容简介:华为的成功首先是战略管理的成功。完善的战略管理体系不仅让华为在全球商业竞争中脱颖而出,也为国内其
"HackosandRedishwiselyofferusthethreethingswemostneedaboutuserandtaskanalysis:pr...
《宋代衣食住行》内容简介:本书为四色印制的有关宋代衣食住行的彩图珍藏类图书。两宋时期是中国古代历史上的一个特殊时期,商品经
每天,google都要测试和发布数百万个源文件、亿万行的代码。数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览
本书所展示的大量示例网站都是难得一见的佳作,这些网站时而浓墨重彩,时而简洁素雅,为读者带来一场丰富的视觉盛宴。读者可以从
《云安全实用指南》内容简介:《云安全实用指南》是一本关于云环境安全防护的实用指南,书中给出了目前在主流云平台上的一些安全实
笔记本电脑完全宝典 本书特色 本书采用环境教学法,版式新颖、美观实用,全程图解、快速上手,双色印刷、轻松阅读,书盘结合、互动教学。在内容的安排上,由浅入深、较有...
《中国古典舞术语词典》内容简介:《中国古典舞术语词典》为“舞蹈普及教育丛书”系列之一,其内容有71个歌舞组合,涵盖了民间舞、
《风帆五千年:历史图像中的帆船世界》内容简介:作为古老的水上交通工具,帆船见证了人们“发现”海洋、征服大自然的奋斗历程。“
TheIBMStyleGuidedistillsIBMwisdomfordevelopingsuperiorcontent:informationthatisc...
电脑英汉速查一本通(双色版) 内容简介 读者在操作电脑、上网冲浪、安装和使用软件时,经常会出现难以理解和阅读的英文词汇、信息、缩略语(缩写词)。本书收集了口前*...