全端Web开发 使用JavaScript与Java pdf

图书网 2018年9月6日15:25:11
评论
2.6K

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

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

通过阅读本书,你将会

了解客户端和服务器端分层的好处,包括代码组织和快速原型开发;

探索JavaScript开发中用到的各种主流工具、框架和起点项目;

深入学习Web API设计和REST风格的软件架构;

了解有别于传统打包方法的各种Java打包方式,以及应用服务器的部署;

使用轻量级服务器构建项目,涉及jQuery和Jython、Sinatra和Angular;

使用传统Java Web应用服务器和类库构建客户端-服务器端Web应用。

全端Web开发 使用JavaScript与Java 内容简介

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

全端Web开发 使用JavaScript与Java 目录

第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 带变量的Hello Word.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 其他Web API工具

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 HTML5 Boilerplate

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章 Java Web API服务器

6.1 更简单的服务器端解决方案

6.2 基于Java的服务器

6.2.1 Java HTTP服务器

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 实用的Web API与REST API

8.3 指引

8.3.1 名词即资源,动词即HTTP行为

8.3.2 请求参数作为修饰符

8.3.3 Web API版本

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 Python Web服务器

9.1.2 Jython Web服务器

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 交互式Ruby shell

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 Amazon EC2

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 JRuby IRB及Java API

附录B REST式的Web API总结

附录C 参考文献

全端Web开发 使用JavaScript与Java 精彩文摘

1.2 技术

使用Java开发Web应用的开发者,一般都熟悉服务器端的动态内容生成。J2EE和JSP经过完善,变成了JEE和JSF。诸如Spring这样的框架为服务器端开发提供了额外的功能。在Web应用的早期,页面相对来说更静态化,服务器的速度相对更快,JavaScript引擎很慢,处理浏览器兼容性的类库和技术也很少,这种开发模型就是合情合理的。

与之相比,现在的客户端-服务器端架构里,服务器更大程度上负责响应客户端请求,提供资源的访问方式(通常使用XML或者JSON交换信息)。在过去的服务器驱动模型里,页面(和与之相关的数据)都在服务器端生成完毕,一起返回客户端在浏览器里渲染。而在客户端-服务器端架构里,服务器先返回一个包含少量数据的初始页面。用户和页面交互时,页面向服务器端发起异步请求,服务器端则返回消息,以使页面刷新来响应这些事件。

刚开始的Web开发主要是创建静态HTML网站,之后加入了服务器端处理(CGI、Java Servlets),为网站注入了动态内容。慢慢地,人们开始使用更加结构化的语言,集成了服务器端模板(ASP、PHP、JSP)和MVC框架。新近出现的技术继续沿着传统的路子,增加了这样那样的抽象。

为了向开发者屏蔽设计和Web的底层架构,组件化的框架出现了。先是出现了标签库,然后是组件化,几种流行的框架都采用了组件化的方式:

Java Server Faces(JSF)是一种基于XML的模板系统和组件化框架,导航实行集中化配置;
Google Web Toolkit是另一种组件化框架,它发挥了Java程序员的长处,让他们集中精力编写Java代码,而不需要直接修改HTML、CSS和JavaScript。
每一种框架都有它的作用,被成功应用于生产系统。但是,和很多试图屏蔽底层复杂性的方案一样,当你需要更多的控制权(比如想要集成大量的JavaScript代码),或者不满足使用框架的前提条件(比如可用服务器会话)时,就出问题了。Web的基本架构是使用HTTP请求-响应协议的一种客户端-服务器端计算模型,而这些方案却试图去屏蔽它。

浏览器端的创新也促成了责任从服务器端向客户端的转移。20世纪90年代后期,微软开发了后来成为Ajax(Jesse James Garrett于2005年2月18日命名了这一术语)的底层技术。Ajax是“asynchronous JavaScript and XML”的缩写,但是对各种Web页面和服务器进行通信的技术也都适用。这种技术允许少量信息传递,这样在设计基于JavaScript的Web应用时,可以更好地利用带宽。处理器的升级和JavaScript引擎的优化显著地提升了浏览器性能,因此将更多工作从服务器端搬到浏览器端也变得顺理成章。用户界面的响应速度被带向了一个新高度。

移动设备的浏览器更进一步促使了客户端代码和服务器端的分离。有时候,我们可以创建出设计良好的响应式Web应用。如果不行,对所有的客户端设备都使用一致的API这一点也是很吸引人的。

罗伊·T. 菲尔丁于2000年发表的博士论文,让Java EE 6与过去基于组件的API设计背道而驰。人们设计出了JAX-RS(Java API for RESTful Web Services)和Jersey(一个“产品级的参考实现”),用来创建使用REST式风格通信的客户端-服务器端架构。

图书网:全端Web开发 使用JavaScript与Java pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: