我有一个来自遗留系统的命令列表,我将其枚举为枚举。它们几乎都是3个大写字母[A-Z],但其中有两个是3位数字。
为了举例,我们说他们是{FOO,BAR,BAZ,QUX,007,999}。
我试图找到一个不会让我或其他任何人头疼的命名惯例。这些值可能会在Java,JSON和 * shudders * Excel之间的某个时刻进行转换。
这就是我现在所拥有的。
UserSchema.methods.apiRepr = function() {
return {
firstName: this.firstName,
lastName: this.lastName,
username: this.username,
id: this._id
}
}
我想知道我是否应该担心导致格式转换问题的主要下划线。如果是这样,在这种情况下会有更好的约定吗?
答案 0 :(得分:0)
我没有看到Java命名如何影响JSON序列化/反序列化。 JSON中的标记(或“元素名称”,如果您愿意)是一个字符串,可以是“_007”以及“007”或“BAZ”。此外,我不知道它如何导致Excel出现任何困难。
结论:您的姓名正常,不用担心。
顺便提一下,以下方法存在潜在错误:
this.code = this.name();
假设您在几个月内进行重构并重命名您的枚举元素,如_007 - > CMD_007,FOO - > CMD_FOO。然后重命名使用_007的逻辑仍然有效,因为它具有代码“007”,在重构期间没有改变。但重命名FOO - > CMD_FOO导致代码从“FOO”更改为“CMD_FOO”。好像您已将FOO(“FOO”)更改为CMD_FOO(“CMD_FOO”)。这可能会制造你的逻辑。这里最糟糕的是,您将看到没有编译错误,并且您将在运行时稍后注意到这些问题。我建议你明确声明代码。