项目说明
项目第一个阶段先对后端进行一个开发。实现一个简单的用户登陆注册,后续再进行拓展。
创建文件夹
mkdir axum-nextjs-app
cd axum-nextjs-app
git init
touch .gitignore
mkdir backend frontend docs deploy
cd backend
touch Cargo.toml
mkdir src
touch src/main.rs
配置项目
axum-nextjs-app/backend/Cargo.toml
[package]
name = "axum-next-app"
version = "0.1.0"
edition = "2021"
authors = ["SunsJay <sunsjay0806@gmail.com>"]
keywords = ["axum", "web", "database"]
license = "MIT"
axum-nextjs-app/backend/src/main.rs
fn main() {
println!("🚀 Axum - NextJS - App v1.0 Start");
}
运行项目:
cargo run
Toml
TOML是一个语义明显且易于阅读的最小化配置文件格式,除了使用Cargo.toml
来管理我们的项目外,我们在项目中也选择使用toml
文件来进行一些配置管理。
# 在项目根目录下创建一个config.toml
touch config.toml
Workspace
多个package
可以组成一个工作空间,他们共享一些同一个Cargo.lock
文件,输出目录,和一些依赖等。
组成工作空间的packages
被称为工作空间的成员,目前我们只有一个app
的成员,后面随着功能增加,会越来越多。
Cargo
在Rust中,Cargo是一种构建系统和包管理器。大多数Rust开发者使用Cargo来管理他们的Rust项目,因为Cargo可以处理许多任务,如构建代码、下载代码所依赖的库以及构建这些库。
Cargo官方手册
cargo watch
使用cargo watch
监听项目的文件变动,使其自动重新编译运行,具体命令可以使用cargo watch --help
查看。
PostMan
跨平台的调试工具,方便对我们编写的API进行测试。PostMan是一款国外的工具,现在国内也有很多不错的API测试工具,功能也基本一致,自行选择即可。
Git
Git是一个免费的开源分布式版本控制系统,旨在处理各种规模的项目,并具有速度和效率优势。它易于学习,性能出色,支持诸如本地分支、方便的暂存区和多工作流等功能。
git flow
Git Flow是一种流行的Git分支策略,旨在简化发布管理。它由软件开发人员Vincent Driessen于2010年引入。Git Flow的核心思想是将工作隔离到不同类型的Git分支中,包括主要分支、开发分支、功能分支、发布分支和热修复分支。这种工作流程有助于更好地管理软件版本的发布,确保代码的稳定性和可靠性。
在Git Flow工作流程中,主要分支用于存储可发布的生产代码,而开发分支用于包含正在测试中的新开发功能。功能分支用于添加新功能,发布分支用于准备新的生产发布,热修复分支用于快速修复生产发布中的问题。这种分支策略有助于团队更好地协作,确保代码的质量和稳定性。
接下来的开发我们将使用git flow
.gitignore
项目目录下的.gitignore
将cargo编译生成的文件夹添加进去,和一些无关的文件或者公开项目不想暴露出来给别人的文件,不对其进行版本管理。
axum-nextjs-app/.gitignore
**/target/
.idea/
.vscode/
继续
如果想完成完整的项目,需要对Rust有基本的了解和使用,相关知识点要自己去掌握。实战项目不会讲很多具体的东西。项目是不断优化迭代的,使用TDD测试驱动开发的模式。