从零到生产环境的 Rust 实战
485 页
Chinese
PDF
4.5

从零到生产环境的 Rust 实战

从零到生产环境的 Rust 实战

作者:

年份:

简介:

引言

《Zero To Production In Rust》(作者:Luca Palmieri,2022年出版,485页)并非又一本普通的 Rust 语言教程。它是一本全面而深入的指南,将引导您完成创建可用于生产环境的 Web 服务的所有阶段:从第一行代码到部署到真实服务器。与许多停留在语法或简单示例上的书籍不同,本书专注于工程实践:架构、测试、错误处理、安全性和 CI/CD。如果您已经熟悉 Rust 基础知识,并希望学习如何构建可靠、可维护且可扩展的 Web 应用程序,那么这本书将成为您的案头参考。

本书内容

本书以逐步构建一个项目——新闻邮件订阅服务(newsletter)——为主线。您从一个空目录开始,逐步添加功能,同时学习最佳实践。主要主题包括:

  • 项目设置与代码结构:模块组织、依赖管理(Cargo)、框架选择(Actix Web)。
  • 数据库操作:使用 SQLx 进行异步 PostgreSQL 访问、数据库迁移、连接池。
  • HTTP 请求与响应处理:路由、中间件、数据验证(serde、validator)。
  • 身份验证与授权:会话、JWT、密码哈希(argon2)。
  • 测试:单元测试、集成测试、使用真实数据库进行测试、模拟对象。
  • 错误处理:惯用的错误类型、日志记录(tracing)、监控。
  • 部署与 DevOps:Docker、CI/CD(GitHub Actions)、生产环境配置、数据库迁移。
  • 性能与安全:速率限制、CORS、SQL 注入防护、性能分析。

适合读者

本书面向已具备 Rust 基础知识(了解语法、所有权、闭包、trait)并希望转向构建真实 Web 服务的开发者。它将有助于:

  • 希望将 Rust 作为主要后端语言的后端开发者。
  • 从其他语言(Python、Go、Java)转型的工程师——本书展示了如何在 Rust 中应用熟悉的模式。
  • 希望了解如何从零开始构建可靠系统,而不仅仅是复制示例的人。

读者将学到什么

  • 如何组织 Rust Web 服务项目:模块、工作空间、配置。
  • 如何使用 Actix Web 构建 REST API。
  • 如何通过 SQLx 使用异步数据库(PostgreSQL)。
  • 如何实现身份验证和会话管理。
  • 如何编写真正检验业务逻辑的测试。
  • 如何配置 CI/CD 并使用 Docker 进行部署。
  • 如何在生产环境中处理错误和记录日志。
  • 如何在 Rust 中应用 SOLID 原则和整洁架构。

优势亮点

  • 实践导向:您不仅阅读理论,还会编写可直接运行的代码。
  • 时效性强:本书使用现代版本的 Rust、Actix Web 4、SQLx 0.6、async/await。
  • 深入细节:作者不仅解释“如何做”,还解释“为什么”——例如,为什么选择某种特定模式。
  • 结构清晰:每一章都建立在前一章的基础上,代码逐步演进,而非重写。
  • 重视测试:专门用一章讲解测试,这在 Rust 书籍中并不常见。
  • 生产思维:从一开始,您就学会考虑安全性、性能和可维护性。

推荐人群

本书特别适合那些已经用 Rust 写过几个小程序,并希望进一步深入的人。

推荐