- ISBN:9787111630937
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:184
- 出版时间:2019-07-01
- 条形码:9787111630937 ; 978-7-111-63093-7
本书特色
《GraphQL实战——写给全栈工程师们》以当下流行的移动互联网应用开发为切入点,结合作者多年的前后端实际架构经验,针对目前互联网上程序员们对GraphQL的疑问和误解,并辅以业界真实案例,对前后端设计中的难点要点分别加以介绍。在前端,本书重点讲述了如何提升用户体验和响应速度;在后端,主要讲解了在高并发海量数据环境下的设计与优化;*后,还介绍了如何让GraphQL与大数据平台整合来训练机器学习模型。
《GraphQL实战——写给全栈工程师们》内容涵盖前端、后端和大数据平台开发,非常适合全栈程序员阅读,也可作为前端程序员、后端程序员、大数据工程师、算法工程师和技术型产品经理提升知识储备的参考书。
内容简介
涵盖当下流行的移动互联网应用前后端和大数据平台开发,教你如何在高并发海量数据环境下提升用户体验和响应速度
GraphQL能让前后端数据通讯更顺畅,提高应用反应速度,加快应用开发速度,这对全栈、前端和后端程序员来说是非常有吸引力的。目前,GraphQL已经被Facebook、Google、 Amazon、Twitter、GitHub、eBay等IT公司接受并投入实际使用。
目录
导读—本书为快速学习设计
第1章 GraphQL API设计和全栈开发1
1.1 什么是GraphQL2
1.2 分布式系统2
1.2.1 扩展性3
1.2.2 可靠性3
1.2.3 远程资源共享4
1.2.4 更强的处理能力4
1.3 C/S架构与API4
1.3.1 C/S架构4
1.3.2 前端与后端5
1.3.3 全栈程序员5
1.3.4 应用程序接口6
1.4 RESTful API的起源与特点7
1.4.1 仓库保管员的窘境7
1.4.2 REST无状态的好处8
1.4.3 RESTful API是否真的无状态8
1.4.4 RESTful API是否是数据传输协议9
1.4.5 RESTful API的好处是什么9
1.5 RESTful API的主要问题10
1.5.1 数据定制的问题10
1.5.2 多次请求的问题10
1.5.3 异常处理的问题10
1.5.4 返回数据格式未知的问题11
1.5.5 请求Endpoint和方式过多的
问题11
1.6 GraphQL如何解决RESTful API的
问题11
1.6.1 GraphQL可以自由定制数据11
1.6.2 GraphQL可以把多次请求合并为
一个12
1.6.3 GraphQL错误以及异常信息
明确12
1.6.4 GraphQL返回数据的形式和查询
请求同构13
1.6.5 GraphQL使用单一的Endpoint14
1.6.6 GraphQL替代了什么14
1.7 GraphQL引发的疑虑15
1.7.1 GraphQL是否还是RESTful15
1.7.2 GraphQL增大了后端系统设计的
难度15
1.7.3 GraphQL是否会带来后端性能
问题15
1.7.4 迁移到GraphQL的代价16
1.7.5 GraphQL是该前端驱动还是后端
驱动16
1.8 GraphQL全栈框架的选用16
1.8.1 Relay17
1.8.2 Apollo17
第2章 GraphQL初体验—电商API设计18
2.1 基本开发环境的搭建19
2.2 和GraphQL互动20
2.2.1 实时交互界面GraphiQL的使用20
2.2.2 通过curl发送请求21
2.2.3 使用第三方客户端21
2.3 Schema与定义数据类型22
2.3.1 强类型的查询语言22
2.3.2 服务器端的Schema23
2.3.3 标量类型24
2.3.4 自定义复杂类型25
2.3.5 枚举26
2.3.6 列表以及对象的列表27
2.4 定义操作28
2.4.1 只读查询操作28
2.4.2 可写修改操作30
2.4.3 订阅操作31
2.4.4 传递输入类型31
2.4.5 操作也是字段33
2.5 精炼数据模型与操作33
2.5.1 接口和继承33
2.5.2 联合35
2.6 精炼查询36
2.6.1 使用变量36
2.6.2 使用别名37
2.6.3 使用片段38
2.6.4 类型条件39
2.6.5 使用Directive40
2.6.6 后端工程师的福音41
2.7 简单数据验证41
2.7.1 必填值的验证42
2.7.2 标量值的验证42
第3章 电商网站前端开发44
3.1 GraphQL前端开发要点45
3.1.1 前端开发的主要任务45
3.1.2 前端开发的难点46
3.1.3 前端技术的选型46
3.2 前端React项目初始化47
3.2.1 React特点简介47
3.2.2 React 整合GraphQL前端系统
设计48
3.2.3 创建React前端工程49
3.2.4 安装Apollo客户端49
3.2.5 初始化GraphQL客户端50
3.2.6 手动发送查询51
3.3 只读数据的React UI组件51
3.3.1 构建GraphQL Query查询51
3.3.2 定义列表元素组件52
3.3.3 定义列表组件52
3.3.4 绑定静态查询和UI组件53
3.3.5 使用Query组件54
3.3.6 从Query组件中接收一个参数55
3.3.7 数据的接收以及出错处理56
3.3.8 手动刷新57
3.4 修改数据的React UI组件57
3.4.1 定义一个带有变量的Mutation
操作58
3.4.2 使用Mutation UI组件58
3.5 支持订阅59
3.5.1 什么时候使用订阅59
3.5.2 订阅是如何实现的60
3.6 本地数据60
第4章 基于Node.js的GraphQL后端61
4.1 GraphQL后端架构思想62
4.1.1 “薄”层设计62
4.1.2 “门户”设计64
4.1.3 面向业务设计64
4.2 GraphQL层的职责与实现65
4.2.1 GraphQL层的职责65
4.2.2 GraphQL层的实现65
4.2.3 Resolver函数与分治策略67
4.3 Apollo GraphQL后端框架68
4.3.1 依赖库的安装68
4.3.2 定义和解析Schema69
4.3.3 绑定处理查询操作函数69
4.4 详解Resolver函数72
4.4.1 Resolver的各种返回类型72
4.4.2 Resolve一个类型72
4.4.3 Resolve一个复杂类型字段73
4.4.4 Resolve一个标量字段75
4.4.5 Resolve一个自定义标量字段77
4.4.6 Resolve一个列表80
4.5 GraphQL后端验证以及错误
处理81
4.5.1 简单方式81
4.5.2 使用自定义标量类型进行验证82
4.6 异步IO84
4.6.1 基于异步非阻塞IO的JavaScript
实现84
4.6.2 同步还是异步85
4.6.3 异步Resolver85
4.7 使用JavaScript开发后端服务的
问题86
第5章 基于Go语言协程的GraphQL服务88
5.1 使用协程和上下文89
5.1.1 使用协程的原因89
5.1.2 协程和GraphQL服务90
5.1.3 上下文和作用域90
5.1.4 派生上下文91
5.2 Go语言的Web服务和中间件92
5.2.1 构建Web服务92
5.2.2 Web服务中间件93
5.2.3 基于中间件的后端架构94
5.2.4 数据收集中间件95
5.2.5 数据库会话中间件95
5.3 G
作者简介
Twitter核心服务组高级研发工程师,毕业于美国Syracuse大学计算机科学与工程学院,获博士学位,曾任国内多家公司CTO、技术总监、首席架构师。
在前后端以及全栈研发一线奋斗十余载,专注于高并发、高可用微服务平台以及大数据平台架构,拥有重构并优化千亿级日访问量微服务以及数据采集经验。力求用浅显的语言来讲述亲身的实战经验和国内外的先进理论,以满足中国互联网行业的实际需求。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0