项目结构

本专题相对复杂,规划好结构非常必要。

如上文所述,整体看,本专题包含几大部分:

  • 分布式商城,我们命名为 plaza
  • 商城的UI,我们命名为 plaza-ui
  • 各种所需要的前置知识,我们命名为 knowledge

我们通过一个 plaza 目录组织本专题所需要的所有项目,如下:

商城UI

我们使用 NextJS 来构建 UI,使用的是官方的 create-next-app 命令,并使用 App 路由方式。所以它的结构就是典型的 NextJS 项目结构,具体结构我们到时详解。

经过以上讲解,让我们看一下整个专题大概的目录结构:

├── plaza
│   ├── knowledge
│   │   ├── distributed-lock
│   │   └── sse
│   ├── plaza
│   └── plaza-ui

开发环境

本专题将在 Linux x64 下进行开发,所以涉及到的某些脚本会使用 GNU 工具链和 Bash 脚本。这些工具基本与 MacOS 兼容,对于 Windows 而言,建议像作者一样,使用 WSL2。

专题所需要的一些服务,比如 PostgreSQL,都是使用 docker ,所以请确保你安装了 docker。

Rust 等环境和依赖使用截止本专题开始编写时的最新版本,并在整个专题编写期间保持版本锁定,即不会在编写中途更新任何版本:

  • Rust:version 1.92.0 (ded5c06cf 2025-12-08)
  • Axum:0.8
  • sqlx:0.8
  • tokio:1
  • serde:1

开发工具和插件

本专题使用 Visual Studio Code 进行开发,为了提高开发效率,将使用以下插件:

  • rust-analyzer:使用 VSC 开发 Rust 必备插件,提供自动完成、格式化代码、错误检查等日常开发所需的功能
  • Even Better TOML:提供 TOML 支持
  • Dependi:依赖管理,提供自动检测项目依赖是否有新版本等功能
  • Error Lens:将错误信息直接显示,而不需要移动光标到错误处,再弹出错误信息
  • DotEnv:提供 .env 支持
  • clang-format:格式化 protobuf3 文件
  • vscode-proto3:提供 protobuf3 支持
  • Prettier:对多种文件进行格式化,尤其是前端相关的文件
  • Tailwind CSS IntelliSense:提供 Tailwind CSS 支持。包括自动完成类名,显示类名对应的原生 CSS 等功能
  • Codeium:AI 智能助手,根据上下文提供代码补全
  • Roo Cline:AI 智能助理,通过 chat 自动生成项目。它是 Cline 的 fork 版本,提供比原版更易用的功能
  • REST Client:直接在 VSC 里发起 HTTP 请求,用于 API 测试

源码仓库

本专题代码位于axumrs/plaza仓库,每个涉及代码编写的章节都使用独立的分支。该仓库将公开一段时间,之后将转为私有仓库,请已购买本专题的用户尽快联系我们,提供你的 github 邮箱,我们将把你加入到该仓库中。

要查看完整内容,请先登录