登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書

『簡體書』Rust Web开发

書城自編碼: 3976590
分類:簡體書→大陸圖書→計算機/網絡圖形圖像/多媒體
作者: 巴斯蒂安·格鲁伯[Bastian Gruber]著
國際書號(ISBN): 9787302658238
出版社: 清华大学出版社
出版日期: 2024-04-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 112.7

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
清俗纪闻
《 清俗纪闻 》

售價:HK$ 98.6
镜中的星期天
《 镜中的星期天 》

售價:HK$ 76.2
世界前沿技术发展报告2024
《 世界前沿技术发展报告2024 》

售價:HK$ 188.2
可转债——新手理财的极简工具
《 可转债——新手理财的极简工具 》

售價:HK$ 65.0
新加坡教育:神话与现实
《 新加坡教育:神话与现实 》

售價:HK$ 96.3
“口袋中的世界史”第一辑·冷战中的危机事件
《 “口袋中的世界史”第一辑·冷战中的危机事件 》

售價:HK$ 291.2
绝美的奥伦堡蕾丝披肩编织
《 绝美的奥伦堡蕾丝披肩编织 》

售價:HK$ 177.0
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
《 狂飙年代:18世纪俄国的新文化和旧文化(第二卷) 》

售價:HK$ 177.0

 

建議一齊購買:

+

HK$ 91.8
《服装设计必修课(CorelDRAW版)》
+

HK$ 86.3
《剪映教程:3天成为短视频与Vlog剪辑高手》
+

HK$ 172.4
《Adobe Premiere Pro 2022经典教程(彩色》
+

HK$ 90.9
《Adobe Illustrator CC图形设计与制作案例实》
+

HK$ 159.9
《Premiere Pro 2022从入门到精通》
+

HK$ 147.2
《Maya 2022从入门到精通(全视频微课版)》
編輯推薦:
如果你厌倦了缓慢、占用大量资源且不稳定的模板化Web开发工具,Rust就是你的解决方案。Rust服务提供了稳定的安全保证、非凡的开发经验,以及能够自动防止常见错误的编译器。
  《Rust Web开发》教你使用Rust以及重要的Rust库(如异步运行时的Tokio、用于Web服务器和API的Warp,以及运行外部HTTP请求的Reqwest)来创建服务端的Web应用。《Rust Web开发》包含大量的代码示例以及专业的提示,以帮助你创建项目和组织代码。随着学习的深入,你将创建一个完整的Q&A Web服务并逐章迭代你的代码,就像参与了真实的项目开发一样。
內容簡介:
主要内容
● 在异步环境中处理借用检查器
● 创建Web API并处理JSON
● 组建一个用于Rust异步开发的技术栈
● 优雅地处理错误
● 测试、追踪、记录和调试
● 在多个环境中部署Rust应用
關於作者:
巴斯蒂安·格鲁伯(Bastian Gruber)是Centrifuge的协议工程师。他曾经是Rust官方异步工作组的一员,并创建了Rust and Tell Berlin MeetUp小组。
目錄
第Ⅰ部分 Rust介绍
第1章 为什么使用Rust 3
1.1 开箱即用:Rust提供的工具 4
1.2 Rust编译器 8
1.3 Rust用于Web服务 10
1.4 Rust应用程序的可维护性 15
1.5 本章小结 15
第2章 建立基础 17
2.1 遵循Rust规范 18
2.1.1 使用结构体对资源进行建模 19
2.1.2 理解Option 21
2.1.3 使用文档解决错误 22
2.1.4 在Rust中处理字符串 27
2.1.5 深入理解移动、借用和所有权 28
2.1.6 使用和实现trait 31
2.1.7 处理结果 39
2.2 创建Web服务器 40
2.2.1 同时处理多个请求 41
2.2.2 Rust的异步环境 42
2.2.3 Rust处理async/await 43
2.2.4 使用Rust Future类型 44
2.2.5 选择运行时 45
2.2.6 选择Web框架 46
2.3 本章小结 49
第Ⅱ部分 开始
第3章 创建第一个路由函数 53
3.1 认识Web框架:Warp 54
3.1.1 Warp包括哪些内容 54
3.1.2 Warp的过滤器系统 55
3.2 获取第一个JSON响应 56
3.2.1 与你的框架理念保持一致 57
3.2.2 处理正确的路由 58
3.2.3 使用Serde库 59
3.2.4 优雅地处理错误 61
3.3 处理CORS头信息 65
3.3.1 在应用层面返回CORS头信息 66
3.3.2 测试CORS响应 67
3.4 本章小结 70
第4章 实现具象状态传输API 73
4.1 从内存中获取问题 74
4.1.1 设置一个模拟数据库 75
4.1.2 准备一组测试数据 78
4.1.3 从模拟数据库中读取 80
4.1.4 解析查询参数 84
4.1.5 返回自定义错误 88
4.2 创建、更新和删除问题 92
4.2.1 在线程安全的情况下更新数据 92
4.2.2 添加一个问题 96
4.2.3 更新问题 98
4.2.4 处理错误的请求 100
4.2.5 从存储中删除问题 101
4.3 通过url表单创建问题 103
4.3.1 url表单和JSON的区别 104
4.3.2 通过url表单添加答案 104
4.4 本章小结 107
第5章 清理代码库 109
5.1 将代码模块化 109
5.1.1 使用Rust的内置模块系统 110
5.1.2 针对不同用例的文件夹结构 116
5.1.3 创建库和sub-crate 120
5.2 为代码创建文件 124
5.2.1 使用文档注释和私有注释 124
5.2.2 在注释中添加代码 126
5.3 检测和格式化代码库 128
5.3.1 安装和使用Clippy 128
5.3.2 使用Rustfmt格式化代码 131
5.4 本章小结 132
第6章 记录、追踪和调试 133
6.1 在Rust应用中记录日志 134
6.1.1 在Web服务中实现日志记录 136
6.1.2 记录HTTP请求日志 142
6.1.3 创建结构化的日志 145
6.2 异步应用中的追踪 152
6.2.1 引入Tracing crate 153
6.2.2 集成Tracing到应用 154
6.3 调试Rust应用 158
6.3.1 在命令行上使用GDB 159
6.3.2 使用LLDB调试Web服务 160
6.3.3 使用Visual Studio和LLDB 162
6.4 本章小结 165
第7章 为应用添加数据库 167
7.1 设置示例数据库 168
7.2 创建第一个表 168
7.3 使用数据库crate 171
7.3.1 将SQLx添加到项目中 173
7.3.2 将Store连接到数据库 174
7.4 重新实现路由函数 177
7.4.1 在get_questions中添加数据库 178
7.4.2 重新实现add_question路由函数 185
7.4.3 问题处理函数的更新和删除 187
7.4.4 更新add_answer路由 190
7.5 处理错误和追踪数据库交互 192
7.6 集成SQL迁移 198
7.7 案例研究:切换数据库管理系统 201
7.8 本章小结 204
第8章 集成第三方API 205
8.1 准备代码库 207
8.1.1 选择一个API 208
8.1.2 了解HTTP库 209
8.1.3 添加一个使用Reqwest的HTTP调用示例 211
8.1.4 处理外部API请求的错误 213
8.2 将JSON响应反序列化为结构体 219
8.2.1 收集API响应信息 220
8.2.2 为API响应创建类型 221
8.3 向API发送问题和答案 226
8.3.1 重构add_question路由函数 226
8.3.2 进行敏感词检查以更新问题 229
8.3.3 更新add_answer路由函数 230
8.4 处理超时和同时发生的多个请求 231
8.4.1 实现外部HTTP调用的重试机制 232
8.4.2 并发或并行执行future 236
8.5 本章小结 238
第Ⅲ部分 投入生产
第9章 添加认证和授权 241
9.1 为Web服务添加认证 243
9.1.1 创建用户概念 243
9.1.2 迁移数据库 245
9.1.3 添加注册端点 247
9.1.4 对密码进行哈希处理 250
9.1.5 处理重复账户错误 252
9.1.6 有状态认证与无状态认证 258
9.1.7 添加登录端点 259
9.1.8 为令牌添加有效期 263
9.2 添加授权中间件 265
9.2.1 迁移数据库表 265
9.2.2 创建令牌验证中间件 266
9.2.3 扩展现有路由以处理账户ID 270
9.3 未涵盖的内容 275
9.4 本章小结 276
第10章 部署应用程序 277
10.1 通过环境变量设置应用程序 277
10.1.1 设置配置文件 279
10.1.2 在程序中接收命令行参数 281
10.1.3 在Web服务中读取和解析环境变量 283
10.2 根据不同环境编译Web服务 288
10.2.1 构建二进制文件时的development和release标志 289
10.2.2 针对不同环境交叉编译二进制文件 290
10.3 在构建流程中使用build.rs 291
10.4 创建正确的Web服务Docker镜像 294
10.4.1 创建静态链接的Docker镜像 295
10.4.2 使用docker-compose建立本地Docker环境 296
10.4.3 将Web服务器的配置提取到一个新模块中 299
10.5 本章小结 303
第11章 测试Rust应用程序 305
11.1 业务逻辑的单元测试 306
11.1.1 测试分页逻辑和处理自定义错误 307
11.1.2 使用环境变量测试配置模块 310
11.1.3 使用新创建的模拟服务器测试profanity模块 314
11.2 测试Warp过滤器 321
11.3 创建集成测试配置 325
11.3.1 将代码库拆分为lib.rs和二进制文件 327
11.3.2 创建集成测试crate和单发服务器实现 330
11.3.3 添加注册测试 332
11.3.4 发生错误时进行堆栈展开 336
11.3.5 测试登录和发布问题 337
11.4 本章小结 339
附录 关于安全的思考 341
內容試閱
关 于 本 书


本书将帮助你从头到尾编写Web应用程序(无论是API、微服务还是单体应用)。你将学习到一切必要的知识,包括如何向外界开放API,连接数据库以存储数据,以及测试和部署应用程序。
这不是一本参考书,而是一本工作手册。正在构建的应用程序在设计上做出了一些妥协,以便在适当的时候解释概念。需要阅读整本书的内容才能最终将应用程序部署到生产环境中。
哪些人应该阅读本书
本书适合那些已经阅读过Steve Klabnik和Carol Nichols合著的The Rust Programming Language(No Starch Press,2019)前6章,并想知道“可以用它做什么”的读者。它也适合那些之前用其他语言构建过Web应用程序的开发人员,他们想知道Rust是否适用于他们的下一个项目。最后,对于那些需要使用Rust编写和维护Web应用程序的新手,这本书也是不错的选择。
本书的编排方式
本书分为三部分,共11章和一个附录。
第Ⅰ部分介绍使用Rust编写Web应用程序的原因和方法。
第1章介绍Rust适合哪种环境和团队,并解释为团队或下一个项目选择Rust的原因。该章将Rust与其他语言进行比较,并初步介绍其Web生态系统。
第2章讲述Rust语言基础知识以及完成本书和理解书中代码片段所需的知识,还介绍Web生态系统的基础知识,并描述在Rust中编写异步应用所需的额外工具。
第Ⅱ部分介绍如何创建应用的业务逻辑。
第3章为后续内容打下基础。该章介绍使用的Web框架Warp,以及如何使用JSON响应HTTP GET请求。
第4章涵盖HTTP POST、PUT和DELETE请求,以及如何从内存中读取假数据。该章还介绍urlform-encoded和JSON主体之间的区别。
第5章讲解如何将代码模块化、执行代码检查和格式化。将大段代码拆分为自己的模块和文件,使用Rust的注释系统对代码库进行注释,添加代码检查规则并进行格式化。
第6章介绍如何对运行中的应用程序进行反思。该章解释日志记录和跟踪之间的区别,并展示调试代码的各种方法。
第7章不再教你使用内存存储,而是添加一个PostgreSQL数据库。你将连接到本地主机上的数据库,创建连接池,并在路由函数之间共享该连接池。
第8章教你连接到外部服务,发送数据并处理接收到的响应。该章讨论如何打包异步函数和反序列化JSON响应。
第Ⅲ部分确保一切就绪,以便将代码投入生产环境。
第9章讨论有状态和无状态认证以及它们在代码中的体现。该章引入用户概念并教你添加令牌验证中间件。
第10章对输入变量进行参数化,例如API密钥和数据库URL,并准备将代码库构建在各种架构和Docker环境中。
第11章以单元测试和集成测试结束本书,并介绍如何在每个测试之后启动和关闭模拟服务器。
附录针对审计和编写安全代码提供指导。
本书可以分章阅读。可以使用代码库来查看各章并为当前阅读的部分进行设置。应用程序是逐章构建的,因此如果你跳过某些章节,可能会错过一些信息。不过,章节可以用作一个软参考指南。
关于代码
本书中的代码示例基于 Rust 2021 edition编写,并在Linux和macOS上进行了测试,支持Intel和Apple芯片。
本书包含许多源代码示例,既有带编号的代码清单,也有与普通文本放在一起的代码。在这两种情况下,源代码都以等宽体进行格式化,以与普通文本区分开来。此外,粗体用于突出显示与章节中先前步骤中的代码不同的代码,例如当新功能添加到现有代码行时。在某些情况下,删除线用于表示正在被替换的代码。
在许多情况下,原始源代码已经重新格式化;添加了换行符并重新调整了缩进,以适应书中可用的页面空间。此外,如果正文已对代码进行描述,源代码中的注释通常会从代码清单中删除。代码注释伴随着许多代码清单,以突出显示重要的概念。
扫描本书封底二维码,即可获取本书示例的完整代码。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.