Files
Fauto/AI_CONTEXT.md
2026-01-27 22:31:27 +08:00

76 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Fauto Platform - AI Context & Developer Guide
> **用途**:本文档旨在为后续接入的 AI 助手或开发者提供项目的核心上下文、架构设计与开发准则。
> **更新时间**2026-01-27
## 1. 项目愿景 (Vision)
**Fauto** 是一个**完全不同**的低代码 + AI 平台。
它的核心理念是:**拒绝黑盒,源码即真理 (Source is Truth)**。
与传统低代码平台(生成 JSON 描述或私有 DSL运行时解释不同Fauto 致力于:
* **源码级生成**:所有配置直接生成可维护的 Vue3 和 Java 源码。
* **非入侵式**生成的代码遵循标准框架规范RuoYi-Vue3不依赖平台运行时黑盒。
* **双向同步**:支持可视化拖拽修改,也支持开发者手动修改源码,两者互不冲突(通过 AST 解析)。
* **极速热更**:利用 Vue HMR 和 Java HotswapAgent 实现“改码即生效”,无需重启服务。
* **AI 协同**:内置 AI 终端,人类与 AI 在同一个代码库上通过自然语言和可视化工具共同协作。
## 2. 核心组件与技术栈 (Core Components)
### 2.1 底座 (Foundation)
* **框架**:基于 [RuoYi-Vue3](https://gitee.com/y_project/RuoYi-Vue) 进行改造。
* **后端**Spring Boot, MyBatis Plus。
* **前端**Vue3, Vite, Element Plus。
### 2.2 关键子系统 (Key Subsystems)
1. **前端可视化编辑器 (fauto-design)**
* *状态*:已验证 Demo (见 `fauto-design/`)。
* *原理*:基于 AST (Abstract Syntax Tree) 解析 `.vue` 文件,实现源码级拖拽和属性编辑。
* *服务*:需要一个 Node.js 伴生服务 (`vue-template-service`) 来处理文件读写和 AST 转换。
2. **后端动态引擎 (java-g)**
* *状态*:已验证 Demo (见 `java-g/`)。
* *原理*
* **MyBatisGeneratorUtils**:基于对象模型生成复杂的 MyBatis XML 和 ResultMap支持无限层级关联查询。
* **JavaParser**:用于分析和修改现有的 Java Controller/Service/Entity实现增量更新保留用户手写代码
3. **热更新环境 (Hot Swap Env)**
* *Java*:集成 **DCEVM** + **HotswapAgent**,支持 Class 重定义、资源文件热更。
* *Vue*Vite HMR。
4. **AI 协作终端**
* *实现*Web 端集成 xterm.js后端集成 pty4j。
* *功能*:允许在浏览器中直接运行 Trae CLI / Qoder CLI进行自然语言编程。
## 3. 业务流程 (Workflow)
1. **对象建模**:用户在平台定义数据对象(字段、类型、关联关系)。
2. **页面设计**
* 平台根据对象模型生成初始 Vue 页面源码。
* 用户使用可视化编辑器拖拽组件(修改源码)。
3. **后端生成**
* 平台根据对象模型生成/更新 Entity, Mapper XML, Service, Controller。
* 使用 JavaParser 确保不覆盖用户自定义逻辑。
4. **热重载**
* 修改的文件自动触发 Hotswap用户即刻在预览界面看到效果。
5. **二次开发**
* 用户或 AI 可以直接在 IDE 或 Web 终端修改生成的源码,平台通过 AST 重新解析以保持同步。
## 4. 项目结构规划 (Project Structure)
```text
D:\workspace\Fauto\
├── fauto-platform/ # [平台本身] (基于 RuoYi-Vue3 改造)
│ ├── fauto-generator/ # 核心:代码生成与 AST 引擎
│ ├── fauto-manager/ # 核心:项目进程管理、环境控制
│ └── ...
├── workspace/ # [用户项目区]
│ ├── project-A/ # 用户生成的独立项目
│ └── project-B/
└── tools/ # [工具链] (HotswapAgent, JDK 等)
```
## 5. 开发准则 (Guidelines)
* **优先修改源码**:所有功能的实现最终都应体现为对目标项目源码的修改,而不是数据库里的配置记录。
* **保持独立性**:生成的项目应当脱离平台也能独立运行。
* **AST 优于 模板**为了支持“往返工程”Round-trip engineering尽量使用 AST 解析修改,避免使用一次性模板覆盖。