< 返回版块

hzqelf 发表于 2026-05-26 11:44

我有一个vibe coding的前后端一体项目,改一个askama模板文件,整个项目重编译,无法得到即时的反馈。

我尝试过拆crate,拆成:core / models / services / middleware / web,但是无论拆得多细,最后这个web crate编译速度就是很慢很慢,而且体感上和未拆分的大单体编译速度没啥区别。

有没有什么办法提高最后这个crate的编译速度呢?

注:现在也就是个后台管理系统的雏形,Rust 不算注释共 5500 行,html 有1千多行,算上各种 spec 文档也不到1万行。我的CPU是:Intel(R) Core(TM) i7-14700,28线程

拆分前:

src/
├── main.rs                 # 启动入口:pool, migrate, seed, routes, serve
├── config.rs               # 环境变量解析
├── db/
│   ├── mod.rs              # pool 初始化
│   └── migrations/         # sqlx migration SQL
├── middleware/
│   ├── auth.rs             # JWT 认证(Cookie + Bearer 双模式)
│   └── csrf.rs             # CSRF 校验
├── models/
│   ├── user.rs
│   ├── role.rs
│   ├── menu.rs
│   ├── dept.rs
│   └── log.rs
├── handlers/
│   ├── pages/              # 页面路由(完整 HTML)
│   │   ├── auth.rs         # GET/POST /login 等
│   │   ├── dashboard.rs    # GET /
│   │   ├── user.rs         # GET /users, /users/new, /users/{id}/edit
│   │   ├── role.rs         # GET /roles, /roles/new, /roles/{id}/edit
│   │   ├── dept.rs         # GET /depts
│   │   ├── menu.rs         # GET /menus, /menus/new, /menus/{id}/edit
│   │   └── log.rs          # GET /logs
│   └── fragments/          # HTML 片段路由(HTMX 调用)
│       ├── user.rs         # GET /users/table, POST /users, DELETE /users/{id}
│       ├── role.rs         # ...
│       ├── dept.rs
│       ├── menu.rs
│       └── log.rs          # GET /logs/table
├── services/               # 业务逻辑
│   ├── auth.rs
│   ├── user.rs
│   ├── role.rs
│   ├── menu.rs
│   ├── dept.rs
│   └── log.rs
└── templates/              # Askama 模板
    ├── layouts/
    │   └── main.html       # 基模板(navbar + sidebar + content)
    ├── partials/
    │   ├── navbar.html
    │   ├── sidebar.html
    │   ├── pagination.html
    │   ├── confirm-modal.html
    │   └── toast.html (Phase 1 inline JS in main.html)
    ├── auth/
    │   ├── login.html
    │   ├── forgot_password.html   (延后)
    │   └── reset_password.html    (延后)
    ├── profile/
    │   └── password.html
    ├── users/
    │   ├── list.html
    │   ├── form.html
    │   └── table_fragment.html
    ├── roles/
    │   ├── list.html
    │   └── form.html
    ├── depts/
    │   └── list.html
    ├── menus/
    │   ├── list.html
    │   └── form.html
    ├── logs/
    │   └── list.html
    ├── dashboard.html
    └── errors/
        ├── 401.html
        ├── 403.html
        ├── 404.html
        └── 500.html

静态资源:`static/css/tailwind.css`、`static/js/htmx.min.js`、`static/img/*`

拆分后:

[workspace]
members = [
    "crates/core",
    "crates/models",
    "crates/services",
    "crates/middleware",
    "crates/web",
]

评论区

写评论

还没有评论

1 共 0 条评论, 1 页