angular - Angular 模型和接口组织
问题描述
Angular 样式指南包含有关在应用程序中使用类和接口的最佳实践的信息。但它没有关于如何组织我的接口和模型类的任何信息。
有一个问题:有没有关于文件和类组织的最佳实践?
- 我应该将所有域类和接口存储在一个文件中还是为每个接口创建单独的文件?
- 我应该将模型类和接口保存在不同的文件中还是一个文件中?
- 如果组件或服务有一些基础设施类和接口,那么它的组织方式(一个或多个文件、后缀等)如何?
- 模型文件的哪些后缀在 Angular 世界中最常见?
例如,更好的跟随方式是什么?
用户服务.model.ts
export enum Gender {MALE, FEMALE}
export interface UserStatus {
id: string;
caption: string;
}
export interface User {
name: string;
gender: Gender;
status: UserStatus;
}
export interface UserListResponse extends ListResponse<User> {}
或者
用户性别.model.ts
export enum Gender {MALE, FEMALE}
用户状态.model.ts
export interface UserStatus {
id: string;
caption: string;
}
用户模型.ts
export interface User {
name: string;
gender: Gender;
status: UserStatus;
}
用户列表响应.model.ts
export interface UserListResponse extends ListResponse<User> {}
UPD:我知道这可以由每个团队内部决定,并且取决于内部协议,但我对“其他开发人员如何做到这一点?”感兴趣。
解决方案
这可能取决于你。
我更喜欢将所有模型保存在它自己的文件中,将特定模型分组在同一个文件中,例如UserStatus
,User
和UserListResponse
.
但是Gender
枚举可以用于其他模型/接口,例如Customer
并且应该在单独的文件中。
PS:one file per class/interface
当您需要编辑它时,该方法将帮助您了解或推断哪个文件名是特定的类/接口。
推荐阅读
- pine-script - 如何在 pine 脚本策略中每天在特定时间强制退出所有未平仓头寸?
- django - 异常值:分配前引用的局部变量“other_user”
- android - Dagger 2 - 不兼容的ScopedBindings
- java - Spring boot JNDI 数据源查找失败
- assembly - 如何在 Ubuntu 中动态链接到 glibc
- javascript - 尝试运行多个硒测试但得到“无法读取未定义的属性”
- python - LaunchDaemon 将不同的 Python 实例运行到终端
- python - 如何为每个输入获取keras模型中层的权重
- mysql - 如何将 mysql 数据库连接到客户端机器中的多人电脑?
- gatsby - 静态页面路由和仅客户端路由之间的Gatsby或 @reach-router ?