一、 前言
1.1. 规范目的
1.2. 局限性
二、 文件规范
2.1. 文件结构约定
2.2. 单一职责原则
2.2.1 单一规则
2.2.2 小函数
三、 命名规范
3.1. 总体命名原则
3.2. 使用点和横杠来分隔文件名
3.3. 符号名与文件名
3.4. 服务名
3.5. 引导程序
3.6. 组件选择器
3.7. 组件的自定义前缀
3.8. 指令选择器
3.9. 指令的自定义前缀
3.10. 管道名
3.11. 单元测试文件名
3.12. 端到端(E2E)测试的文件名
3.13. Angular NgModule 命名
四、 编程规范
4.1. 类
4.2. 常量
4.3. 接口
4.4. 属性和方法
4.5. 导入语句中的空行
4.6. 注释
4.7. 优化作用域链
4.8. 合并http请求
4.9. 业务分离
五、 应用程序结构与 NgModule
5.1. LIFT
5.1.1 定位
5.1.2 识别
5.1.3 扁平
5.1.4 T-DRY
5.2. 总体结构的指导原则
5.3. 按特性组织的目录结构
5.4. 应用的根模块
5.5. 特性模块
5.6. 共享特性模块
5.7. 核心特性模块
5.8. 防止多次导入 CoreModule
5.9. 惰性加载的目录
5.10. 不要直接导入惰性加载的目录
六、 Components
6.1. 把组件当做元素
6.2. 把模板和样式从组件中分离
6.3. 内联输入和输出属性装饰器
6.4. 避免为输入和输出属性指定别名
6.5. 成员顺序
6.6. 把逻辑放到服务里
6.7. 不要给输出属性加前缀
6.8. 把表现层逻辑放到组件类里
七、 指令
7.1. 使用指令来增强已有元素
7.2. HostListener、HostBinding 装饰器 和 组件元数据 host
八、 服务
8.1. 服务总是单例的
8.2. 单一职责
8.3. 提供一个服务
8.4. 使用 @Injectable() 类装饰器
九、 数据服务
9.1. 通过服务与 Web 服务器通讯
十、 生命周期钩子
10.1. 实现生命周期钩子接口