具体描述
JavaScript和Java这两大生态系统之间如何协同,成为所有Web开发人员共同面临的问题。本书应运而生,全面又简练地为读者展示了最新的C/S应用开发范式。本书以Java和JavaScript这两种最流行的服务器与客户端开发环境为例,全面讲解了最新的C/S应用开发范式。作者不仅讲解了很多实用的C/S开发架构,还通过各种实例进一步强化了读者的认知。
作者简介
Casimir Staternos
是Synchronoss Technologies公司软件架构师,有十余年软件开发经验。曾在Java Magazine和Oracle Technology Network上发表过技术文章,可在Pluralsight(www.pluralsight.com)上观看他录制的Peepcode播客视频。他目前主要使用Java、Ruby等技术从事Web应用开发。
目录信息
第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 学习JavaScript 12
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开发者的JavaScript 20
2.4.1 HelloWord.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.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 JSON 39
3.5 HATEOAS 40
3.6 API衡量和分类 43
3.7 函数式编程和REST 43
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处理JSON 57
4.6.2 用JVM上的脚本语言处理JSON 59
4.7 小结 62
第5章 客户端框架 65
5.1 概述 65
5.2 起点一:响应式Web设计 67
5.2.1 HTML5 Boilerplate 68
5.2.2 Bootstrap 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.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 Restlet 82
6.2.4 Roo 83
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 API 109
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和jQuery 117
8.5 实践理论 118
第9章 jQuery和Jython 119
9.1 服务端:Jython 120
9.1.1 Python Web服务器 120
9.1.2 Jython Web服务器 120
9.1.3 Mock API 121
9.2 客户端:jQuery 122
9.2.1 DOM遍历和操作 122
9.2.2 实用函数 123
9.2.3 效果 124
9.2.4 事件处理 124
9.2.5 Ajax 124
9.3 jQuery和更高级的抽象 125
9.4 项目 125
9.4.1 基础HTML 126
9.4.2 JavaScript和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.3 Ruby版本管理器 131
10.1.4 包 132
10.1.5 Sinatra 133
10.1.6 JSON处理 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.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 VMWare 161
12.2.2 VirtualBox 161
12.2.3 Amazon EC2 161
12.3 虚拟机的管理 162
12.3.1 Vagrant 162
12.3.2 Packer 162
12.3.3 DevOps配置管理 163
12.4 容器 163
12.4.1 LXC 164
12.4.2 Docker 164
12.5 项目 165
12.5.1 Docker帮助 166
12.5.2 镜像和容器的维护 166
12.5.3 在Docker里使用Java 167
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 JUnit 177
13.3.2 Jasmine 177
13.3.3 Cucumber 178
13.4 项目 179
13.4.1 JUnit 180
13.4.2 Jasmine 180
13.4.3 Cucumber 181
13.4.4 Maven报告 181
13.5 小结 182
第14章 总结 183
14.1 社区 183
14.2 历史 184
14.3 尾声 184
附录A JRuby IRB及Java API 185
附录B REST式的Web API总结 191
附录C 参考文献 196
关于作者 197
关于封面图 197
· · · · · · (收起)
读后感
JavaScript和Java这两大生态系统之间如何协同,成为所有Web开发人员共同面临的问题。本书应运而生,全面又简练地为读者展示了最新的C/S应用开发范式。本书以Java和JavaScript这两种最流行的服务器与客户端开发环境为例,全面讲解了最新的C/S应用开发范式。作者不仅讲解了很多实...
如果你从事Java Web开发,那么这本书可以为你带来更宽广的视野,让你知道自己缺少什么,还需要学到什么,业界流行什么。起初是因为标题才读了这本书,以为作者为用一本书来构建一个应用,从而阐述Java和JavaScript如何相结合的web应用开发。 但事实上,作者并没有这样做,这本...
JavaScript和Java这两大生态系统之间如何协同,成为所有Web开发人员共同面临的问题。本书应运而生,全面又简练地为读者展示了最新的C/S应用开发范式。本书以Java和JavaScript这两种最流行的服务器与客户端开发环境为例,全面讲解了最新的C/S应用开发范式。作者不仅讲解了很多实...
如果你从事Java Web开发,那么这本书可以为你带来更宽广的视野,让你知道自己缺少什么,还需要学到什么,业界流行什么。起初是因为标题才读了这本书,以为作者为用一本书来构建一个应用,从而阐述Java和JavaScript如何相结合的web应用开发。 但事实上,作者并没有这样做,这本...
如果你从事Java Web开发,那么这本书可以为你带来更宽广的视野,让你知道自己缺少什么,还需要学到什么,业界流行什么。起初是因为标题才读了这本书,以为作者为用一本书来构建一个应用,从而阐述Java和JavaScript如何相结合的web应用开发。 但事实上,作者并没有这样做,这本...
用户评价
说实话,我之前对“全端”这个概念一直有些模糊,总觉得它是个大而空泛的词。《全端Web开发》这本书,彻底改变了我的看法。它并不是简单地罗列前端和后端的各种技术,而是真正地将两者融会贯通,展示了如何构建一个完整的、能够投入使用的Web应用。我最感兴趣的是书中关于“部署与运维”的部分。很多技术书籍都会在代码实现上戛然而止,但这本书却把我们推向了实际的生产环境。它讲解了如何将我们开发的Web应用部署到服务器上,如何进行域名解析、SSL证书的配置,以及基本的服务器监控和日志分析。这对于我来说是非常宝贵的经验。它让我看到了一个Web应用从本地开发到线上运行的完整生命周期。而且,书中还提到了一些关于性能优化和安全加固的实践方法,这些都是在实际项目中必不可少的。这本书让我明白,真正的全端开发,是能够贯穿整个项目生命周期的,并且需要对各个环节都有所了解和掌握。
我是一名产品经理,一直觉得懂点技术能更好地和开发团队沟通。《全端Web开发》这本书,对于我这样的角色来说,简直是福音!我以前对代码的世界充满敬畏,觉得那些专业术语和复杂的逻辑是遥不可及的。但是,这本书用一种非常友好的方式,把Web开发的核心概念都讲清楚了。我不需要成为一个顶尖的程序员,但这本书让我能够理解前端用户界面背后的逻辑,明白为什么某些功能会那样实现,以及开发一个新功能大概需要哪些步骤。特别是关于用户体验(UX)和用户界面(UI)设计与开发的结合部分,书中给出了很多实用的建议,让我能够从技术实现的层面去思考产品的可行性和优化方向。它还涉及到一些项目管理和敏捷开发的内容,这对于我管理项目非常有帮助。我不再只是提出需求,而是能更深入地参与到技术讨论中,提出的建议也更加落地。这本书让我摆脱了“只懂业务”的局限,让我能够站在一个更全面的角度去审视产品和技术。
不得不说,这本书的结构设计非常有条理,简直是为我这种零基础的初学者量身定做的。我一直想学习Web开发,但市面上太多的资料让我眼花缭乱,不知道从何下手。《全端Web开发》这本书就解决了我的这个痛点。它从最基本的理论知识开始,循序渐进地引导读者进入Web开发的整个流程。我尤其赞赏书中的实践导向。它不仅仅是理论堆砌,每一章后面都有相应的代码示例和练习题,让我能够亲手去实现书中的概念。比如,在学习JavaScript DOM操作的时候,书中提供了一个制作简单网页交互的小项目,我跟着代码一步步敲下来,看到页面上的元素真的按照我的指令动起来,那种成就感是无与伦比的。更让我惊喜的是,它还涉及到了当下非常流行的框架和库,比如React和Vue.js。虽然只是初步介绍,但已经让我对这些工具有了大致的了解,知道它们在实际开发中扮演着什么样的角色,以及如何提高开发效率。这本书的优点还在于它并没有局限于某一种技术栈,而是尽量涵盖了Web开发的多个方面,让我对整个行业都有了一个比较全面的认识,为我今后的深入学习指明了方向。
这本书真的让我打开了新世界的大门!之前我一直觉得自己懂点前端,能做点简单的静态页面,对后端更是知之甚少,感觉那是一片神秘又难以逾越的领域。但是,翻开《全端Web开发》这本书,我才发现原来这一切并没有那么遥不可及。作者的讲解方式非常深入浅出,从最基础的HTML、CSS、JavaScript讲起,一点点地构建起我对前端开发的认知。我特别喜欢书里关于响应式设计的章节,以前总觉得让网页在不同设备上都好看是个技术活,看了书里的案例和解释,才明白原来运用一些流式布局、媒体查询的技巧就能轻松实现,感觉自己瞬间拥有了“魔法”。而且,它并没有停留在前端,而是非常自然地过渡到了后端。我之前对数据库、服务器、API这些概念都一知半解,但这本书用了很多生动的比喻和清晰的图示,把这些复杂的概念讲得明明白白。特别是讲到Node.js的部分,我第一次理解了JavaScript是如何在服务器端运行的,并且能够和数据库进行交互,这简直太神奇了!这本书给我一种“打通任督二脉”的感觉,让我明白前端和后端是相辅相成的,只有掌握了两者,才能真正构建出完整的Web应用。
作为一个在IT行业摸爬滚打多年的开发者,我一直在寻找一本能够系统性地梳理我知识体系的书籍,尤其是在Web开发这个日新月异的领域。《全端Web开发》这本书,可以说是完全超出了我的预期。它在基础部分的处理上,虽然详略得当,但对于有一定基础的人来说,可以快速跳过,直达核心。我最欣赏的是它在“架构设计”和“部署上线”这两个环节的讲解。很多书都会侧重于某一种语言或框架的语法,但这本书却能把一个完整的Web应用从构思到落地所需的关键环节都串联起来。它探讨了RESTful API的设计原则,数据库的选择和优化策略,以及如何进行高效的缓存和负载均衡。这些都是在实际工作中至关重要的,但往往在初级教程中被忽略。书中的案例分析也非常有价值,它通过一些真实场景的模拟,让我看到如何将理论知识应用到解决实际问题中,比如如何处理高并发请求,如何保证数据的安全性等等。这本书让我意识到,全端开发不仅仅是前端和后端的简单叠加,而是一个系统工程,需要多方面的知识和经验的积累。
非常宽泛…指路
挂羊头卖狗肉
不建议买
内容有点松散,点到为止。
食之无味