Ember项目结构规范 #

一、目录结构 #

1.1 推荐结构 #

text
app/
├── adapters/           # 数据适配器
│   └── application.js
├── components/         # 组件
│   ├── common/         # 通用组件
│   └── features/       # 功能组件
├── controllers/        # 控制器
├── helpers/            # 模板助手
├── models/             # 数据模型
├── modifiers/          # 模板修饰符
├── routes/             # 路由
├── serializers/        # 序列化器
├── services/           # 服务
├── styles/             # 样式
│   ├── app.css
│   └── components/
├── templates/          # 模板
└── transforms/         # 数据转换器

1.2 组件组织 #

text
app/components/
├── common/             # 通用组件
│   ├── button/
│   ├── input/
│   └── modal/
├── layout/             # 布局组件
│   ├── header/
│   ├── footer/
│   └── sidebar/
└── features/           # 功能组件
    ├── user/
    └── post/

二、命名约定 #

2.1 文件命名 #

类型 命名规则 示例
组件 kebab-case user-card.js
路由 kebab-case user-profile.js
模型 kebab-case blog-post.js
服务 kebab-case user-session.js

2.2 类命名 #

类型 命名规则 示例
组件 PascalCase + Component UserCardComponent
路由 PascalCase + Route UserProfileRoute
模型 PascalCase + Model BlogPostModel
服务 PascalCase + Service UserSessionService

三、模块划分 #

3.1 按功能划分 #

text
app/
├── modules/
│   ├── user/
│   │   ├── components/
│   │   ├── routes/
│   │   └── services/
│   └── post/
│       ├── components/
│       ├── routes/
│       └── models/

3.2 Pods结构 #

text
app/pods/
├── user/
│   ├── route.js
│   ├── template.hbs
│   ├── controller.js
│   └── components/
│       └── user-card/
└── post/
    ├── route.js
    └── template.hbs

四、总结 #

项目结构要点:

原则 说明
一致性 遵循约定
可发现 易于查找
可扩展 便于添加
可维护 易于理解

良好的项目结构是可维护应用的基础。

最后更新:2026-03-28