返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 全新GraphL实战 写给全栈们王北南9787111630937
  • 正版
    • 作者: 王北南著 | 王北南编 | 王北南译 | 王北南绘
    • 出版社: 机械工业出版社
    • 出版时间:2019-07-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    萌萌哒图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 王北南著| 王北南编| 王北南译| 王北南绘
    • 出版社:机械工业出版社
    • 出版时间:2019-07-01
    • 版次:1
    • 印次:1
    • 字数:301000
    • 页数:184
    • 开本:16开
    • ISBN:9787111630937
    • 版权提供:机械工业出版社
    • 作者:王北南
    • 著:王北南
    • 装帧:平装
    • 印次:1
    • 定价:59.00
    • ISBN:9787111630937
    • 出版社:机械工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2019-07-01
    • 页数:184
    • 外部编号:1201918833
    • 版次:1
    • 成品尺寸:暂无

    前言
    导读——本书为快速学习设计
    章 GraphL API设计和全栈开发1
    1.1 什么是GraphL2
    1.2 分布式系统2
    1.2.1 扩展3
    1.2.2 可靠3
    1.. 远程资源共享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 GraphL如何解决RESTful API的问题11
    1.6.1 GraphL可以自由定制数据11
    1.6.2 GraphL可以把多次请求合并为一个12
    1.6.3 GraphL错误以及异常信息明确12
    1.6.4 GraphL返回数据的形式和查询请求同构13
    1.6.5 GraphL使用单一的Endpoint14
    1.6.6 GraphL替代了什么14
    1.7 GraphL引发的疑虑15
    1.7.1 GraphL还是RESTful15
    1.7.2 GraphL增大了后端系统设计的难度15
    1.7.3 GraphL会带来后端能问题15
    1.7.4 迁移到GraphL的代价16
    1.7.5 GraphL是该前端驱动还是后端驱动16
    1.8 GraphL全栈框架的选用16
    1.8.1 Relay17
    1.8.2 Apoll7
    第2章 GraphL初体验——电商API设计18
    2.1 基本开发环境的搭建19
    2.2 和GraphL互动20
    2.2.1 实时交互界面GraphiL的使用20
    2.2.2 通过curl发送请求21
    2.. 使用第三方客户端21
    . Schema与定义数据类型22
    ..1 强类型的查询语言22
    ..2 服务器端的Schema
    .. 标量类型24
    ..4 自定义复杂类型25
    ..5 枚举26
    .. 列表以及对象的列表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 GraphL前端开发要点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 整合GraphL前端系统设计48
    3.. 创建React前端工程49
    3.2.4 安装Apollo客户端49
    3.2.5 初始化GraphL客户端50
    3.2.6 手动发送查询51
    3.3 只读数据的React UI组件51
    3.3.1 构建GraphL uery查询51
    3.3.2 定义列表元素组件52
    3.3.3 定义列表组件52
    3.3.4 绑定静态查询和UI组件53
    3.3.5 使用ery组件54
    3.3.6 从ery组件中接收一个参数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的GraphL后端61
    4.1 GraphL后端架构思想62
    4.1.1 “薄”层设计62
    4.1.2 “门户”设计64
    4.1.3 面向业务设计64
    4.2 GraphL层的职责与实现65
    4.2.1 GraphL层的职责65
    4.2.2 GraphL层的实现65
    4.. Resolver函数与分治策略67
    4.3 Apollo GraphL后端框架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 GraphL后端验以及错误处理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语言协程的GraphL服务88
    5.1 使用协程和上下文89
    5.1.1 使用协程的原因89
    5.1.2 协程和GraphL服务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.. 基于中间件的后端架构94
    5.2.4 数据收集中间件95
    5.2.5 数据库会话中间件95
    5.3 GraphL Http请求的处理97
    5.3.1 GraphL请求的解析97
    5.3.2 执行GraphL查询和准备结果98
    5.3.3 合理使用Http请求上下文100
    5.5 使用Go语言的GraphL后端会有能问题100
    第6章 实体数据持久化建模与实现102
    6.1 基于的数据库访问层设计103
    6.1.1 系统和API设计103
    6.1.2 实现数据读取104
    6.1.3 实现数据写入105
    6.2 使用访问数据的好处105
    6.2.1 利于数据库查询能优化105
    6.2.2 利于分片106
    6.. 利于和缓存结合106
    6.2.4 防止重复读取同一资源106
    6.2.5 利于Resolver函数实现106
    6.3 建立基于的抽象Schema数据类型107
    6.3.1 Relay的Schema设计方案107
    6.3.2 Relay的GraphL查询设计107
    6.4 分布式生成算法108
    6.4.1 Snowflake 108
    6.4.2 Fast 的安装和代码示例108
    6.4.3 设置109
    6.5 GraphL连接数据库访问层109
    6.5.1 用户数据DAO实例110
    6.5.2 DAO在GraphL后端架构中存在的意义111
    6.6 简单分页设计111
    6.6.1 简单分页设计112
    6.6.2 Cursor分页方式113
    6.6.3 客户端分页显示114
    6.6.4 服务器端Resolve分页114
    6.7 一对多关系115
    6.7.1 Schema和Resolver函数定义116
    6.7.2 外键方式116
    6.7.3 聚合方式117
    第7章 “关系”的设计和持久化118
    7.1 用户关系建模119
    7.1.1 如何表达“图”119
    7.1.2 基本设计思路120
    7.2 边的集合与游标分页120
    7.2.1 边的简单表达120
    7.2.2 边的简单分页121
    7.. 边的游标分页122
    7.3 借鉴Relay的边设计方案1
    7.4 “关系”数据的数据访问层设计124
    第8章 全栈API优化125
    8.1 前后端数据的一致126
    8.1.1 数据的存在形式126
    8.1.2 ery与Mutation126
    8.2 客户端缓存更新机制128
    8.2.1 客户端使用Mutation更新缓存128
    8.2.2 定制更新缓存129
    8.3 出错、超时与重试130
    8.3.1 错误信息的定义130
    8.3.2 服务器端如何返回出错信息131
    8.3.3 客户端如何处理出错132
    8.4 使用高阶函数来优化GraphL组件132
    8.4.1 高阶函数133
    8.4.2 使用函数式的声明方式133
    8.4.3 使用Recoe134
    8.5 通盘考虑API设计135
    8.5.1 面向真实数据关系建模135
    8.5.2 遗留数据建模136
    8.6 自省和文档136
    8.6.1 命名比文档重要136
    8.6.2 自省137
    8.6.3 文档139
    8.6.4 API的升级与兼容140
    第9章 认与授权141
    9.1 基于Http协议的用户认142
    9.1.1 使用Cookie的认方式142
    9.1.2 使用访问令牌Token的认方式142
    9.2 基于访问令牌Token的用户认143
    9.2.1 访问令牌的生成143
    9.2.2 GraphL整合Token要点144
    9.. 服务器端拿到Token以后做什么144
    9.3 查询操作层面的权限控制145
    9.3.1 设计GraphL的授权服务146
    9.3.2 JWT Token中数据的定义146
    9.3.3 JWT Token的生成147
    9.3.4 验Token中间件148
    9.3.5 解析和验Token148
    9.3.6 通过上下文传递授权信息149
    9.3.7 数据细粒度的权限控制150
    0章 高并发后端优化151
    10.1 处理N+1问题152
    10.1.1 什么是N+1问题152
    10.1.2 N+1问题为什么会危害能152
    10.1.3 解决N+1问题的思路153
    10.1.4 GraphL如何批处理查询153
    10.2 使用DataLoader154
    10.2.1 DataLoader的工作模式154
    10.2.2 批处理函数156
    10.. DataLoader与下游服务157
    10.2.4 批处理函数对于error的处理157
    10.2.5 为每个Http请求创建DataLoader157
    10.3 使用Cache159
    10.3.1 GraphL与RESTful API对缓存的不同设计159
    10.3.2 Memcached的查询与优化160
    10.3.3 Redis的查询与优化161
    10.4 NoSL与下游服务的数据库查询与优化161
    10.4.1 使用内嵌对象存储数据161
    10.4.2 使用对象引用存储数据162
    10.4.3 基于列Column存储的数据建模162
    10.4.4 下游服务数据源的优化163
    10.5 SL数据库的数据查询合并与优化163
    10.5.1 基于Key-Value设计的SL数据库优化163
    10.5.2 基于传统数据库查询的数据库优化164
    10.5.3 高并发下的SL数据查询瓶颈164
    10.6 GraphL与大数据和机器学习166
    10.6.1 使用GraphL获取实时数据166
    10.6.2 获取大批次对象团的问题167
    10.6.3 高频访问GraphL服务的问题167
    10.6.4 GraphL应用的数据采集168
    1章 测试与部署170
    11.1 单元测试171
    11.1.1 在Resolver函数中使用依赖注入171
    11.1.2 创建Mock对象172
    11.1.3 编写单元测试代码173
    11.2 集成测试174
    11.2.1 准备环境174
    11.2.2 准备客户端174
    11.. 编写测试用例并验结果175
    11.2.4 持续集成175
    11.3 压力测试与Profiling176
    11.3.1 简单压力测试177
    11.3.2 Fork生产环境流量177
    11.3.3 使用访问日志进行压力测试178
    11.3.4 Diffy测试178
    11.4 开发环境部署179
    11.4.1 配置下游服务179
    11.4.2 负载均衡的部署180
    11.5 生产环境弹部署181
    11.5.1 服务注册与发现 182
    11.5.2 高可用系统183
    后记184

     

     

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购