Netty实战

Netty实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Norman Maurer) , (Marvin Allen Wolfthal)
2017-05
版次: 1
ISBN: 9787115453686
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
306人买过
  •   本书是为想要或者正在使用Java 从事高性能网络编程的人而写的,循序渐进地介绍了Netty各个方面的内容。

      本书共分为4 个部分:第一部分详细地介绍Netty 的相关概念以及核心组件,第二部分介绍自定义协议经常用到的编解码器,第三部分介绍Netty 对于应用层高级协议的支持,会覆盖常见的协议及其在实践中的应用,第四部分是几个案例研究。此外,附录部分会还简单地介绍Maven,以及如何通过使用Maven 编译和运行本书中的示例。

      阅读本书不需要读者精通Java 网络和并发编程。如果想要更加深入地理解本书背后的理念以及Netty 源码本身,可以系统地学习一下Java 网络编程、NIO、并发和异步编程以及相关的设计模式。



      Norman Maurer,是苹果公司的资深软件工程师,同时也是Netty的核心开发人员。



      Marvin Allen Wolfthal,是Dell Services的顾问,他使用Netty实现了多个任务关键型的企业系统。



      何品,目前是淘宝的一名资深软件工程师,热爱网络、并发、异步相关的主题以及函数式编程,同时也是Netty、Akka等项目的贡献者,活跃于Scala社区,目前也在从事GraphQL相关的开发工作。

    第一部分 Netty的概念及体系结构

    第1 章 Netty——异步和事件驱动 3

    1.1 Java 网络编程 4

    1.1.1 Java NIO 5

    1.1.2 选择器 6

    1.2 Netty 简介 6

    1.2.1 谁在使用Netty 7

    1.2.2 异步和事件驱动 8

    1.3 Netty 的核心组件 9

    1.3.1 Channel 9

    1.3.2 回调 9

    1.3.3 Future 10

    1.3.4 事件和ChannelHandler 11

    1.3.5 把它们放在一起 12

    1.4 小结 13

    第2 章 你的第一款Netty应用程序 14

    2.1 设置开发环境 14

    2.1.1 获取并安装Java 开发工具包 14

    2.1.2 下载并安装IDE 15

    2.1.3 下载和安装Apache Maven 15

    2.1.4 配置工具集 16

    2.2 Netty 客户端/服务器概览 16

    2.3 编写Echo 服务器 17

    2.3.1 ChannelHandler 和业务逻辑 17

    2.3.2 引导服务器 18

    2.4 编写Echo 客户端 21

    2.4.1 通过ChannelHandler 实现客户端逻辑 21

    2.4.2 引导客户端 22

    2.5 构建和运行Echo 服务器和客户端 24

    2.5.1 运行构建 24

    2.5.2 运行Echo 服务器和客户端 27

    2.6 小结 29

    第3 章 Netty 的组件和设计 30

    3.1 Channel、EventLoop 和ChannelFuture 30

    3.1.1 Channel 接口 31

    3.1.2 EventLoop 接口 31

    3.1.3 ChannelFuture 接口 32

    3.2 ChannelHandler 和ChannelPipeline 32

    3.2.1 ChannelHandler 接口 32

    3.2.2 ChannelPipeline 接口 33

    3.2.3 更加深入地了解ChannelHandler 34

    3.2.4 编码器和解码器 35

    3.2.5 抽象类SimpleChannelInboundHandler 35

    3.3 引导 36

    3.4 小结 37

    第4 章 传输 38

    4.1 案例研究:传输迁移 38

    4.1.1 不通过Netty 使用OIO和NIO 39

    4.1.2 通过Netty 使用OIO和NIO 41

    4.1.3 非阻塞的Netty 版本 42

    4.2 传输API 43

    4.3 内置的传输 45

    4.3.1 NIO——非阻塞I/O 46

    4.3.2 Epoll——用于Linux的本地非阻塞传输 47

    4.3.3 OIO——旧的阻塞I/O 48

    4.3.4 用于JVM 内部通信的Local 传输 48

    4.3.5 Embedded 传输 49

    4.4 传输的用例 49

    4.5 小结 51

    第5 章 ByteBuf 52

    5.1 ByteBuf 的API 52

    5.2 ByteBuf 类——Netty的数据容器 53

    5.2.1 它是如何工作的 53

    5.2.2 ByteBuf 的使用模式 53

    5.3 字节级操作 57

    5.3.1 随机访问索引 57

    5.3.2 顺序访问索引 57

    5.3.3 可丢弃字节 58

    5.3.4 可读字节 58

    5.3.5 可写字节 59

    5.3.6 索引管理 59

    5.3.7 查找操作 60

    5.3.8 派生缓冲区 60

    5.3.9 读/写操作 62

    5.3.10 更多的操作 64

    5.4 ByteBufHolder 接口 65

    5.5 ByteBuf 分配 65

    5.5.1 按需分配:ByteBufAllocator 接口 65

    5.5.2 Unpooled 缓冲区 67

    5.5.3 ByteBufUtil 类 67

    5.6 引用计数 67

    5.7 小结 68

    第6 章 ChannelHandler 和ChannelPipeline 70

    6.1 ChannelHandler 家族 70

    6.1.1 Channel 的生命周期 70

    6.1.2 ChannelHandler的生命周期 71

    6.1.3 ChannelInboundHandler接口 71

    6.1.4 ChannelOutboundHandler接口 73

    6.1.5 ChannelHandler 适配器 74

    6.1.6 资源管理 74

    6.2 ChannelPipeline 接口 76

    6.2.1 修改ChannelPipeline 78

    6.2.2 触发事件 79

    6.3 ChannelHandlerContext接口 80

    6.3.1 使用ChannelHandlerContext 82

    6.3.2 ChannelHandler 和ChannelHandlerContext 的高级用法 84

    6.4 异常处理 86

    6.4.1 处理入站异常 86

    6.4.2 处理出站异常 87

    6.5 小结 88

    第7 章 EventLoop 和线程模型 89

    7.1 线程模型概述 89

    7.2 EventLoop 接口 90

    7.2.1 Netty 4 中的I/O 和事件处理 92

    7.2.2 Netty 3 中的I/O 操作 92

    7.3 任务调度 93

    7.3.1 JDK 的任务调度API 93

    7.3.2 使用EventLoop调度任务 94

    7.4 实现细节 95

    7.4.1 线程管理 95

    7.4.2 EventLoop/线程的分配 96

    7.5 小结 98

    第8 章 引导 99

    8.1 Bootstrap 类 99

    8.2 引导客户端和无连接协议 101

    8.2.1 引导客户端 102

    8.2.2 Channel 和EventLoopGroup 的兼容性 103

    8.3 引导服务器 104

    8.3.1 ServerBootstrap 类 104

    8.3.2 引导服务器 105

    8.4 从Channel引导客户端 107

    8.5 在引导过程中添加多个ChannelHandler 108

    8.6 使用Netty 的ChannelOption 和属性 110

    8.7 引导DatagramChannel 111

    8.8 关闭 112

    8.9 小结 112

    第9 章 单元测试 113

    9.1 EmbeddedChannel概述 113

    9.2 使用EmbeddedChannel测试ChannelHandler 115

    9.2.1 测试入站消息 115

    9.2.2 测试出站消息 118

    9.3 测试异常处理 119

    9.4 小结 121

    第二部分 编解码器

    第10 章 编解码器框架 125

    10.1 什么是编解码器 125

    10.2 解码器 125

    10.2.1 抽象类ByteToMessageDecoder 126

    10.2.2 抽象类ReplayingDecoder 127

    10.2.3 抽象类MessageToMessageDecoder 128

    10.2.4 TooLongFrameException 类 130

    10.3 编码器 131

    10.3.1 抽象类MessageToByteEncoder 131

    10.3.2 抽象类MessageToMessageEncoder 132

    10.4 抽象的编解码器类 133

    10.4.1 抽象类ByteToMessageCodec 133

    10.4.2 抽象类MessageToMessageCodec 134

    10.4.3 CombinedChannelDuplexHandler 类 137

    10.5 小结 138

    第11 章 预置的ChannelHandler和编解码器 139

    11.1 通过SSL/TLS 保护Netty 应用程序 139

    11.2 构建基于Netty 的HTTP/HTTPS 应用程序 141

    11.2.1 HTTP 解码器、编码器和编解码器 141

    11.2.2 聚合HTTP 消息 143

    11.2.3 HTTP 压缩 144

    11.2.4 使用HTTPS 145

    11.2.5 WebSocket 146

    11.3 空闲的连接和超时 148

    11.4 解码基于分隔符的协议和基于长度的协议 150

    11.4.1 基于分隔符的协议 150

    11.4.2 基于长度的协议 153

    11.5 写大型数据 155

    11.6 序列化数据 1 57

    11.6.1 JDK 序列化 157

    11.6.2 使用JBoss Marshalling进行序列化 157

    11.6.3 通过Protocol Buffers序列化 159

    11.7 小结 160

    第三部分 网络协议

    第12 章 WebSocket 163

    12.1 WebSocket 简介 163

    12.2 我们的WebSocket 示例应用程序 164

    12.3 添加WebSocket支持 165

    12.3.1 处理HTTP 请求 165

    12.3.2 处理WebSocket 帧 168

    12.3.3 初始化ChannelPipeline 169

    12.3.4 引导 171

    12.4 测试该应用程序 173

    12.5 小结 176

    第13章 使用UDP 广播事件 177

    13.1 UDP 的基础知识 177

    13.2 UDP 广播 178

    13.3 UDP 示例应用程序 178

    13.4 消息 POJO:LogEvent 179

    13.5 编写广播者 180

    13.6 编写监视器 185

    13.7 运行LogEventBroadcaster 和LogEventMonitor 187

    13.8 小结 189

    第四部分 案例研究

    第14 章 案例研究,第一部分 193

    14.1 Droplr—构建移动服务 193

    14.1.1 这一切的起因 193

    14.1.2 Droplr 是怎样工作的 194

    14.1.3 创造一个更加快速的上传体验 194

    14.1.4 技术栈 196

    14.1.5 性能 199

    14.1.6 小结——站在巨人的肩膀上 200

    14.2 Firebase—实时的数据同步服务 200

    14.2.1 Firebase 的架构 201

    14.2.2 长轮询 201

    14.2.3 HTTP 1.1 keep-alive和流水线化 204

    14.2.4 控制SslHandler 205

    14.2.5 Firebase 小结 207

    14.3 Urban Airship—构建移动服务 207

    14.3.1 移动消息的基础知识 207

    14.3.2 第三方递交 208

    14.3.3 使用二进制协议的例子 209

    14.3.4 直接面向设备的递交 211

    14.3.5 Netty 擅长管理大量的并发连接 212

    14.3.6 Urban Airship 小结——跨越防火墙边界 213

    14.4 小结 214

    第15 章 案例研究,第二部分 215

    15.1 Netty 在Facebook 的使用:Nifty 和Swift 215

    15.1.1 什么是Thrift 215

    15.1.2 使用Netty 改善Java Thrift 的现状 216

    15.1.3 Nifty 服务器的设计 217

    15.1.4 Nifty 异步客户端的设计 220

    15.1.5 Swift:一种更快的构建Java Thrift 服务的方式 221

    15.1.6 结果 221

    15.1.7 Facebook 小结 224

    15.2 Netty 在Twitter的使用:Finagle 224

    15.2.1 Twitter 成长的烦恼 224

    15.2.2 Finagle 的诞生 224

    15.2.3 Finagle 是如何工作的 225

    15.2.4 Finagle 的抽象 230

    15.2.5 故障管理 231

    15.2.6 组合服务 232

    15.2.7 未来:Netty 232

    15.2.8 Twitter 小结 233

    15.3 小结 233

    附录 Maven 介绍 234



  • 内容简介:
      本书是为想要或者正在使用Java 从事高性能网络编程的人而写的,循序渐进地介绍了Netty各个方面的内容。

      本书共分为4 个部分:第一部分详细地介绍Netty 的相关概念以及核心组件,第二部分介绍自定义协议经常用到的编解码器,第三部分介绍Netty 对于应用层高级协议的支持,会覆盖常见的协议及其在实践中的应用,第四部分是几个案例研究。此外,附录部分会还简单地介绍Maven,以及如何通过使用Maven 编译和运行本书中的示例。

      阅读本书不需要读者精通Java 网络和并发编程。如果想要更加深入地理解本书背后的理念以及Netty 源码本身,可以系统地学习一下Java 网络编程、NIO、并发和异步编程以及相关的设计模式。



  • 作者简介:
      Norman Maurer,是苹果公司的资深软件工程师,同时也是Netty的核心开发人员。



      Marvin Allen Wolfthal,是Dell Services的顾问,他使用Netty实现了多个任务关键型的企业系统。



      何品,目前是淘宝的一名资深软件工程师,热爱网络、并发、异步相关的主题以及函数式编程,同时也是Netty、Akka等项目的贡献者,活跃于Scala社区,目前也在从事GraphQL相关的开发工作。

  • 目录:
    第一部分 Netty的概念及体系结构

    第1 章 Netty——异步和事件驱动 3

    1.1 Java 网络编程 4

    1.1.1 Java NIO 5

    1.1.2 选择器 6

    1.2 Netty 简介 6

    1.2.1 谁在使用Netty 7

    1.2.2 异步和事件驱动 8

    1.3 Netty 的核心组件 9

    1.3.1 Channel 9

    1.3.2 回调 9

    1.3.3 Future 10

    1.3.4 事件和ChannelHandler 11

    1.3.5 把它们放在一起 12

    1.4 小结 13

    第2 章 你的第一款Netty应用程序 14

    2.1 设置开发环境 14

    2.1.1 获取并安装Java 开发工具包 14

    2.1.2 下载并安装IDE 15

    2.1.3 下载和安装Apache Maven 15

    2.1.4 配置工具集 16

    2.2 Netty 客户端/服务器概览 16

    2.3 编写Echo 服务器 17

    2.3.1 ChannelHandler 和业务逻辑 17

    2.3.2 引导服务器 18

    2.4 编写Echo 客户端 21

    2.4.1 通过ChannelHandler 实现客户端逻辑 21

    2.4.2 引导客户端 22

    2.5 构建和运行Echo 服务器和客户端 24

    2.5.1 运行构建 24

    2.5.2 运行Echo 服务器和客户端 27

    2.6 小结 29

    第3 章 Netty 的组件和设计 30

    3.1 Channel、EventLoop 和ChannelFuture 30

    3.1.1 Channel 接口 31

    3.1.2 EventLoop 接口 31

    3.1.3 ChannelFuture 接口 32

    3.2 ChannelHandler 和ChannelPipeline 32

    3.2.1 ChannelHandler 接口 32

    3.2.2 ChannelPipeline 接口 33

    3.2.3 更加深入地了解ChannelHandler 34

    3.2.4 编码器和解码器 35

    3.2.5 抽象类SimpleChannelInboundHandler 35

    3.3 引导 36

    3.4 小结 37

    第4 章 传输 38

    4.1 案例研究:传输迁移 38

    4.1.1 不通过Netty 使用OIO和NIO 39

    4.1.2 通过Netty 使用OIO和NIO 41

    4.1.3 非阻塞的Netty 版本 42

    4.2 传输API 43

    4.3 内置的传输 45

    4.3.1 NIO——非阻塞I/O 46

    4.3.2 Epoll——用于Linux的本地非阻塞传输 47

    4.3.3 OIO——旧的阻塞I/O 48

    4.3.4 用于JVM 内部通信的Local 传输 48

    4.3.5 Embedded 传输 49

    4.4 传输的用例 49

    4.5 小结 51

    第5 章 ByteBuf 52

    5.1 ByteBuf 的API 52

    5.2 ByteBuf 类——Netty的数据容器 53

    5.2.1 它是如何工作的 53

    5.2.2 ByteBuf 的使用模式 53

    5.3 字节级操作 57

    5.3.1 随机访问索引 57

    5.3.2 顺序访问索引 57

    5.3.3 可丢弃字节 58

    5.3.4 可读字节 58

    5.3.5 可写字节 59

    5.3.6 索引管理 59

    5.3.7 查找操作 60

    5.3.8 派生缓冲区 60

    5.3.9 读/写操作 62

    5.3.10 更多的操作 64

    5.4 ByteBufHolder 接口 65

    5.5 ByteBuf 分配 65

    5.5.1 按需分配:ByteBufAllocator 接口 65

    5.5.2 Unpooled 缓冲区 67

    5.5.3 ByteBufUtil 类 67

    5.6 引用计数 67

    5.7 小结 68

    第6 章 ChannelHandler 和ChannelPipeline 70

    6.1 ChannelHandler 家族 70

    6.1.1 Channel 的生命周期 70

    6.1.2 ChannelHandler的生命周期 71

    6.1.3 ChannelInboundHandler接口 71

    6.1.4 ChannelOutboundHandler接口 73

    6.1.5 ChannelHandler 适配器 74

    6.1.6 资源管理 74

    6.2 ChannelPipeline 接口 76

    6.2.1 修改ChannelPipeline 78

    6.2.2 触发事件 79

    6.3 ChannelHandlerContext接口 80

    6.3.1 使用ChannelHandlerContext 82

    6.3.2 ChannelHandler 和ChannelHandlerContext 的高级用法 84

    6.4 异常处理 86

    6.4.1 处理入站异常 86

    6.4.2 处理出站异常 87

    6.5 小结 88

    第7 章 EventLoop 和线程模型 89

    7.1 线程模型概述 89

    7.2 EventLoop 接口 90

    7.2.1 Netty 4 中的I/O 和事件处理 92

    7.2.2 Netty 3 中的I/O 操作 92

    7.3 任务调度 93

    7.3.1 JDK 的任务调度API 93

    7.3.2 使用EventLoop调度任务 94

    7.4 实现细节 95

    7.4.1 线程管理 95

    7.4.2 EventLoop/线程的分配 96

    7.5 小结 98

    第8 章 引导 99

    8.1 Bootstrap 类 99

    8.2 引导客户端和无连接协议 101

    8.2.1 引导客户端 102

    8.2.2 Channel 和EventLoopGroup 的兼容性 103

    8.3 引导服务器 104

    8.3.1 ServerBootstrap 类 104

    8.3.2 引导服务器 105

    8.4 从Channel引导客户端 107

    8.5 在引导过程中添加多个ChannelHandler 108

    8.6 使用Netty 的ChannelOption 和属性 110

    8.7 引导DatagramChannel 111

    8.8 关闭 112

    8.9 小结 112

    第9 章 单元测试 113

    9.1 EmbeddedChannel概述 113

    9.2 使用EmbeddedChannel测试ChannelHandler 115

    9.2.1 测试入站消息 115

    9.2.2 测试出站消息 118

    9.3 测试异常处理 119

    9.4 小结 121

    第二部分 编解码器

    第10 章 编解码器框架 125

    10.1 什么是编解码器 125

    10.2 解码器 125

    10.2.1 抽象类ByteToMessageDecoder 126

    10.2.2 抽象类ReplayingDecoder 127

    10.2.3 抽象类MessageToMessageDecoder 128

    10.2.4 TooLongFrameException 类 130

    10.3 编码器 131

    10.3.1 抽象类MessageToByteEncoder 131

    10.3.2 抽象类MessageToMessageEncoder 132

    10.4 抽象的编解码器类 133

    10.4.1 抽象类ByteToMessageCodec 133

    10.4.2 抽象类MessageToMessageCodec 134

    10.4.3 CombinedChannelDuplexHandler 类 137

    10.5 小结 138

    第11 章 预置的ChannelHandler和编解码器 139

    11.1 通过SSL/TLS 保护Netty 应用程序 139

    11.2 构建基于Netty 的HTTP/HTTPS 应用程序 141

    11.2.1 HTTP 解码器、编码器和编解码器 141

    11.2.2 聚合HTTP 消息 143

    11.2.3 HTTP 压缩 144

    11.2.4 使用HTTPS 145

    11.2.5 WebSocket 146

    11.3 空闲的连接和超时 148

    11.4 解码基于分隔符的协议和基于长度的协议 150

    11.4.1 基于分隔符的协议 150

    11.4.2 基于长度的协议 153

    11.5 写大型数据 155

    11.6 序列化数据 1 57

    11.6.1 JDK 序列化 157

    11.6.2 使用JBoss Marshalling进行序列化 157

    11.6.3 通过Protocol Buffers序列化 159

    11.7 小结 160

    第三部分 网络协议

    第12 章 WebSocket 163

    12.1 WebSocket 简介 163

    12.2 我们的WebSocket 示例应用程序 164

    12.3 添加WebSocket支持 165

    12.3.1 处理HTTP 请求 165

    12.3.2 处理WebSocket 帧 168

    12.3.3 初始化ChannelPipeline 169

    12.3.4 引导 171

    12.4 测试该应用程序 173

    12.5 小结 176

    第13章 使用UDP 广播事件 177

    13.1 UDP 的基础知识 177

    13.2 UDP 广播 178

    13.3 UDP 示例应用程序 178

    13.4 消息 POJO:LogEvent 179

    13.5 编写广播者 180

    13.6 编写监视器 185

    13.7 运行LogEventBroadcaster 和LogEventMonitor 187

    13.8 小结 189

    第四部分 案例研究

    第14 章 案例研究,第一部分 193

    14.1 Droplr—构建移动服务 193

    14.1.1 这一切的起因 193

    14.1.2 Droplr 是怎样工作的 194

    14.1.3 创造一个更加快速的上传体验 194

    14.1.4 技术栈 196

    14.1.5 性能 199

    14.1.6 小结——站在巨人的肩膀上 200

    14.2 Firebase—实时的数据同步服务 200

    14.2.1 Firebase 的架构 201

    14.2.2 长轮询 201

    14.2.3 HTTP 1.1 keep-alive和流水线化 204

    14.2.4 控制SslHandler 205

    14.2.5 Firebase 小结 207

    14.3 Urban Airship—构建移动服务 207

    14.3.1 移动消息的基础知识 207

    14.3.2 第三方递交 208

    14.3.3 使用二进制协议的例子 209

    14.3.4 直接面向设备的递交 211

    14.3.5 Netty 擅长管理大量的并发连接 212

    14.3.6 Urban Airship 小结——跨越防火墙边界 213

    14.4 小结 214

    第15 章 案例研究,第二部分 215

    15.1 Netty 在Facebook 的使用:Nifty 和Swift 215

    15.1.1 什么是Thrift 215

    15.1.2 使用Netty 改善Java Thrift 的现状 216

    15.1.3 Nifty 服务器的设计 217

    15.1.4 Nifty 异步客户端的设计 220

    15.1.5 Swift:一种更快的构建Java Thrift 服务的方式 221

    15.1.6 结果 221

    15.1.7 Facebook 小结 224

    15.2 Netty 在Twitter的使用:Finagle 224

    15.2.1 Twitter 成长的烦恼 224

    15.2.2 Finagle 的诞生 224

    15.2.3 Finagle 是如何工作的 225

    15.2.4 Finagle 的抽象 230

    15.2.5 故障管理 231

    15.2.6 组合服务 232

    15.2.7 未来:Netty 232

    15.2.8 Twitter 小结 233

    15.3 小结 233

    附录 Maven 介绍 234



查看详情
相关图书 / 更多
Netty实战
New小学英语同步阅读 五年级上册
郑文
Netty实战
New Thinking in GIScience
Bin Li;Xun Shi;A-Xin
Netty实战
Neo4j图谱分析实战
[美]埃斯特尔·赛弗 著;沈·F 译
Netty实战
Netty源码全解与架构思维
黄俊
Netty实战
New小学英语同步阅读 三年级上册
郑文
Netty实战
Nesbitt不等式加强式的研究
邹守文 著
Netty实战
New小学英语同步阅读 二年级下册
郑文
Netty实战
New小学英语同步阅读 六年级上册
郑文
Netty实战
New小学英语同步阅读一年级上册
郑文 编
Netty实战
Next.js实战
[美]米歇尔·里瓦 著;李伟 译
Netty实战
New小学英语同步阅读 一年级下册
郑文
Netty实战
New小学英语同步阅读 六年级下册
郑文
您可能感兴趣 / 更多
Netty实战
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
Netty实战
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
Netty实战
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
Netty实战
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
Netty实战
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
Netty实战
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
Netty实战
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
Netty实战
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
Netty实战
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
Netty实战
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
Netty实战
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
Netty实战
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译