版本控制方法-数字与形容词

时间:2019-06-26 08:25:41

标签: design-patterns naming-conventions naming

大多数这个问题没有确定的答案,但是我想知道社区的意见。我们将实现数据模型的新版本(暂时支持现有模型)。目前,我们有一些实现命名的选项:

1)使用一些实现符号(例如User-> gmUser)。我首先不喜欢它,因为它不能为我们提供未来变化的解决方案。另外,我不想将接口名称链接到实现

2)使用数字进行版本控制(例如User-> v2User / User2User3等)-这是一种更广泛使用的方法。但是这样的命名对我来说似乎很奇怪。另外,有一个子建议,只要没有人使用原始的User3

,就可以重命名User-> User

3)对版本使用前缀(例如User-> AwesomeUserApplication-> AwesomeApplication)。在幕后,它应该遵循字母顺序,但是总的来说,这样的命名只是说UserAwesomeUser是不同的实体。

我个人选择第三个选项。但是我的同行们说没有人使用该选项。这是有原因的。我知道那些使用这种命名方式的人大多将其用于营销。但是对我来说,它使代码更具可读性。

我想知道社区意见和一些最佳实践专家。

预先感谢

P.S。提供更多上下文-主要是关于GraphQL查询,因此User1 / User2-当前区别不在字段列表中,而在结构上与能力有关

2 个答案:

答案 0 :(得分:0)

要在文件结构级别上实现版本控制

/models
  /ver1
    /User.js
  /ver2
    /User.js

它仅允许更改导入路径,但将命名保存在代码中

答案 1 :(得分:0)

我们使用了第二种方法(UserUser2)。

  1. 很明显,命名是临时的,最终只有一种生存(当然,如果您不打算同时支持这两种模型),而UserAwesomeUser似乎需要两种版本出于不同原因的模型

  2. 字母顺序。我们希望UserUser2位于同一位置。

您现在还可以将所有当前模型重命名为*Legacy,只需创建User作为新版本即可。这样,您只需在重构后删除所有*Legacy