编辑推荐

近几年来,用户习惯、技术和开发方法极大地改变了Web应用的设计,但是Web本身并没有变化。《全端Web开发 使用JavaScript与Java》展示了如何开发出遵循Web底层架构的应用。

作为一名Java程序员,在以客户端-服务器端架构开发Web应用时,如何应对各种难题?这本内容详尽的指南将告诉你如何使用各种Java工具、客户端技术和WebAPI开发Web应用。作者首先概括了客户端-服务器端技术,然后详细介绍了很多实用的客户端-服务器端架构。你将在多个章节中参与到实战项目中,从而获得对相应技术和主题的一手经验。

通过阅读《全端Web开发 使用JavaScript与Java》,你将会

了解客户端和服务器端分层的好处,包括代码组织和快速原型开发;
探索JavaScript开发中用到的各种主流工具、框架和起点项目;
深入学习WebAPI设计和REST风格的软件架构;
了解有别于传统打包方法的各种Java打包方式,以及应用服务器的部署;
使用轻量级服务器构建项目,涉及jQuery和Jython、Sinatra和Angular;
使用传统JavaWeb应用服务器和类库构建客户端-服务器端Web应用。

内容简介

JavaScript和Java这两大生态系统之间如何协同,成为所有Web开发人员共同面临的问题。《全端Web开发 使用JavaScript与Java》应运而生,全面又简练地为读者展示了全新的C/S应用开发范式。《全端Web开发 使用JavaScript与Java》以Java和JavaScript这两种流行的服务器与客户端开发环境为例,全面讲解了全新的C/S应用开发范式。作者不仅讲解了很多实用的C/S开发架构,还通过各种实例进一步强化了读者的认知。

作者简介

CasimirStaternos是SynchronossTechnologies公司软件架构师,有十余年软件开发经验。曾在JavaMagazine和OracleTechnologyNetwork上发表过技术文章,可在Pluralsight(www.pluralsight.com)上观看他录制的Peepcode播客视频。他目前主要使用Java、Ruby等技术从事Web应用开发。

精彩书评

“随着客户端-服务器端架构向浏览器迁移,现在的程序员面临着来自新技术和架构的挑战。这《全端Web开发 使用JavaScript与Java》直捣这一复杂性的核心,将Web应用开发的现状直接呈现在读者眼前。”
——TonyPowell
TrifectaTechnologies公司的技术方案负责人

目录

前言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 其他WebAPI工具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 HTML5Boilerplate68
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章 JavaWebAPI服务器77
6.1 更简单的服务器端解决方案77
6.2 基于Java的服务器79
6.2.1 JavaHTTP服务器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 实用的WebAPI与RESTAPI109
8.3 指引110
8.3.1 名词即资源,动词即HTTP行为110
8.3.2 请求参数作为修饰符111
8.3.3 WebAPI版本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 PythonWeb服务器120
9.1.2 JythonWeb服务器120
9.1.3 MockAPI121
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 交互式Rubyshell131
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 AmazonEC2161
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

其他推荐