Rust初习录(5)Rust的代码结构“多种玩法”(入门必看)
·
Rust 的代码结构“玩法”其实比很多语言更灵活,因为它不强制 OOP,也不强制目录结构,但有一套非常清晰的模块体系(module system)。常见可以分成 3 层结构 + 多种工程组织方式 来理解。
一、基础核心:模块体系(Rust 的灵魂)
Rust 主要靠这 4 个关键词组织代码:
mod(模块)use(引入)pub(可见性)crate(包)
1)单文件模块拆分
mod user;
fn main() {
user::login();
}
👉 user.rs:
pub fn login() {
println!("login");
}
👉 适合小项目
2)嵌套模块(推荐基础结构)
mod service {
pub mod user {
pub fn login() {}
}
}
fn main() {
service::user::login();
}
👉 适合中小项目逻辑分层
3)文件夹模块结构(企业最常用)
src/
├── main.rs
├── user/
│ ├── mod.rs
│ ├── service.rs
│ ├── model.rs
main.rs:
mod user;
fn main() {
user::service::login();
}
user/mod.rs:
pub mod service;
pub mod model;
👉 这是 Rust Web 项目最常见结构(Actix / Axum)
二、工程级“玩法”(架构风格)
1)分层架构(类似 Java)
src/
├── controller/
├── service/
├── repository/
├── model/
特点:
- 清晰
- Java 开发者最容易上手
- 适合 Web 后端(Axum / Actix)
2)领域驱动(DDD 风格)
src/
├── domain/
│ ├── user/
│ ├── order/
├── application/
├── infrastructure/
├── interfaces/
特点:
- 企业级
- 复杂业务系统
- Rust + 微服务常用
3)按功能模块划分(推荐⭐)
src/
├── user/
│ ├── controller.rs
│ ├── service.rs
│ ├── model.rs
├── order/
├── payment/
特点:
- 高内聚
- 扩展性强
- 最适合中大型项目
👉 Rust 社区非常推荐这种
4)二进制 + 库分离(高级玩法)
project/
├── src/
│ ├── main.rs (bin)
│ ├── lib.rs (core逻辑)
lib.rs:
pub mod service;
pub mod model;
main.rs:
use mycrate::service;
fn main() {
service::run();
}
👉 好处:
- core 可复用
- CLI / Web 共用逻辑
5)Workspace 多项目结构(大型系统)
workspace/
├── Cargo.toml
├── service-a/
├── service-b/
├── common/
特点:
- 微服务架构
- 多 crate 管理
- 企业标准玩法
三、Rust 特有的“隐藏玩法”
1)trait + impl 分层
trait UserService {
fn login(&self);
}
struct UserServiceImpl;
impl UserService for UserServiceImpl {
fn login(&self) {}
}
👉 类似 Java interface + implementation
2)mod + pub 控制封装
mod user {
fn private_fn() {}
pub fn public_fn() {}
}
👉 Rust 的“权限系统”比 Java 更严格
3)宏组织代码(进阶)
macro_rules! create_service {
() => {
fn run() {
println!("service running");
}
};
}
四、总结(重点记住)
Rust 代码结构可以归纳为 4 种主流玩法:
⭐ 小项目
- 单文件 + mod
⭐ 中型项目(推荐)
- 按功能模块拆分(user/order/payment)
⭐ 企业级
- DDD 分层(domain/application/infrastructure)
⭐ 超大型系统
- Workspace + 多 crate 微服务
更多推荐

所有评论(0)