【发布时间】:2019-05-12 16:01:11
【问题描述】:
Angular 样式指南包含有关在应用程序中使用类和接口的最佳实践的信息。但它没有关于如何组织我的接口和模型类的任何信息。
有一个问题:有没有关于文件和班级组织的最佳实践?
- 我应该将所有域类和接口存储在一个文件中还是为每个接口创建单独的文件?
- 我应该将模型类和接口保存在不同的文件中还是一个文件中?
- 如果组件或服务有一些基础设施类和接口,那么它的组织方式(一个或多个文件、后缀等)如何?
- 模型文件的哪些后缀在 Angular 世界中最常见?
例如,更好的跟随方式是什么?
user-service.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> {}
或
user-gender.model.ts
export enum Gender {MALE, FEMALE}
用户状态.model.ts
export interface UserStatus {
id: string;
caption: string;
}
user.model.ts
export interface User {
name: string;
gender: Gender;
status: UserStatus;
}
用户列表响应.model.ts
export interface UserListResponse extends ListResponse<User> {}
更新: 我知道这可以由每个团队在内部决定并取决于内部协议,但我对“其他开发人员如何做到这一点?”感兴趣。
【问题讨论】:
-
这可能取决于你自己的开发方式,我们通常在模型、接口和组件之间进行深度分离,而组件和相关服务被包装在同一个文件夹中,而类和接口则依赖于被隔离到一个单独的文件夹中。一般来说,请记住,在同一个项目上工作的人越多,您就越有可能需要拆分文件,这样版本控制就不会很痛苦,因为有很多人在同一个文件上工作可能会导致不受欢迎的冲突。简而言之,这无论如何都是个人的,我的只是考虑。
-
听起来不错,但在我看来,为每个“特定”组件接口创建“两行”文件,例如带有值和名称字段的“ListOption”和带有 ListOptions 数组的“ListSelection”不是好主意..
-
这在很大程度上取决于你的项目有多大。该接口/组件/任何东西在明年左右可能会变得更大,所以你觉得你的代码应该如何组织真的很重要。请记住,它应该是可读且易于查阅/编辑和维护的,这很重要。
标签: angular typescript