You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
hejl 5a1bdb7fc5 逻辑已经OK,先提交 1 day ago
..
core 部分完成 2 days ago
role-management 逻辑已经OK,先提交 1 day ago
route-sync 逻辑已经OK,先提交 1 day ago
system-settings 样式统一基本完成 1 week ago
user-management 逻辑已经OK,先提交 1 day ago
ModuleManager.js 模块化重构 2 weeks ago
README.md 模块化重构 2 weeks ago
config.js 路由同步 5 days ago
example-usage.js 删除测试菜单,修复本地缓存 1 week ago
index.js 删除测试菜单,修复本地缓存 1 week ago

README.md

GoFaster 模块化架构

概述

本项目已重构为模块化架构,将原有功能按业务领域划分为不同的模块,提高代码的可维护性和可扩展性。

模块结构

modules/
├── core/                    # 核心模块
│   ├── components/         # 核心组件
│   ├── services/          # 核心服务
│   ├── utils/             # 核心工具
│   └── store/             # 核心状态管理
├── user-management/        # 用户管理模块
│   ├── components/         # 用户管理组件
│   ├── services/          # 用户管理服务
│   ├── views/             # 用户管理页面
│   └── store/             # 用户管理状态
├── system-settings/        # 系统设置模块
│   ├── components/         # 系统设置组件
│   ├── views/              # 系统设置页面
│   └── store/              # 系统设置状态
├── business-features/      # 业务功能模块
│   ├── components/         # 业务功能组件
│   ├── services/          # 业务功能服务
│   └── views/             # 业务功能页面
├── config.js              # 模块配置
├── ModuleManager.js       # 模块管理器
└── index.js               # 主模块入口

模块说明

1. 核心模块 (Core)

  • 功能: 提供应用的基础架构和核心功能
  • 包含: 主题管理、数据库服务、核心组件等
  • 依赖: 无
  • 优先级: 1

2. 用户管理模块 (User Management)

  • 功能: 处理用户认证、用户信息管理、权限控制等
  • 包含: 登录、注册、用户资料、权限管理等
  • 依赖: 核心模块
  • 优先级: 2

3. 系统设置模块 (System Settings)

  • 功能: 管理系统配置、用户偏好设置等
  • 包含: 应用设置、主题设置、用户偏好等
  • 依赖: 核心模块
  • 优先级: 3

4. 业务功能模块 (Business Features)

  • 功能: 实现具体的业务功能
  • 包含: 速度测试、历史记录等
  • 依赖: 核心模块、用户管理模块
  • 优先级: 4

使用方法

导入模块

// 导入特定模块
import { userService, LoginModal } from '@/modules/user-management'

// 导入核心功能
import { themeManager, Toast } from '@/modules/core'

// 导入所有模块
import { registerModules } from '@/modules'

模块注册

import { registerModules } from '@/modules'

// 在应用启动时注册所有模块
registerModules(app)

模块管理

import moduleManager from '@/modules/ModuleManager'

// 检查模块状态
const status = moduleManager.getModuleStatus('user-management')

// 手动加载模块
await moduleManager.loadModule('user-management')

扩展新模块

1. 创建模块目录

modules/
└── new-module/
    ├── components/
    ├── services/
    ├── views/
    ├── store/
    └── index.js

2. 创建模块入口文件

// modules/new-module/index.js
export { default as NewComponent } from './components/NewComponent.vue'
export { default as newService } from './services/newService.js'

3. 更新配置文件

// modules/config.js
export const MODULE_CONFIG = {
  // ... 其他模块
  'new-module': {
    name: 'New Module',
    description: '新功能模块',
    version: '1.0.0',
    dependencies: ['core'],
    priority: 5
  }
}

4. 更新主模块入口

// modules/index.js
export * from './new-module/index.js'

最佳实践

  1. 模块独立性: 每个模块应该尽可能独立,减少模块间的耦合
  2. 依赖管理: 明确声明模块依赖关系,避免循环依赖
  3. 接口设计: 模块间通过明确的接口进行通信
  4. 状态隔离: 每个模块管理自己的状态,避免全局状态污染
  5. 错误处理: 模块内部处理自己的错误,向上抛出有意义的错误信息

迁移说明

原有的功能已按以下方式迁移:

  • 用户认证相关user-management 模块
  • 系统设置相关system-settings 模块
  • 业务功能相关business-features 模块
  • 核心功能相关core 模块

注意事项

  1. 模块加载顺序按照依赖关系和优先级自动确定
  2. 模块初始化失败不会影响其他模块的正常运行
  3. 可以通过模块管理器监控模块状态
  4. 新增功能建议按模块化方式组织代码