【问题标题】:Angular models and interfaces organizationAngular 模型和接口组织
【发布时间】: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


【解决方案1】:

这可能取决于您。

我更喜欢将所有模型保存在自己的文件中,将特定模型分组在同一个文件中,例如 UserStatusUserUserListResponse

Gender 枚举可以用于其他模型/接口,例如Customer,并且应该在一个单独的文件中。

PSone file per class/interface 方法将帮助您在需要编辑时了解或推断哪个文件名是特定类/接口。

【讨论】:

  • 按“域”而不是相关服务或组件对模型进行分组是个好主意,谢谢。您是否将模型文件与相关组件或服务放在一起,或者在某处创建单独的文件夹?
  • 我使用专用文件夹来保存我的所有模型,例如 ./src/models/./src/shared/models。这个想法是所有组件和服务都可以使用最简单的路径访问的地方
猜你喜欢
  • 2010-11-11
  • 2019-02-01
  • 2016-09-20
  • 2016-10-05
  • 2023-03-07
  • 2011-01-13
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
相关资源
最近更新 更多