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

4.1 KiB
Raw Blame History

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 进行改造。
  • 后端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 重定义、资源文件热更。
    • VueVite 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)

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 解析修改,避免使用一次性模板覆盖。