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