Java 命名具有类似引用(例如:名称)的不同内容(例如:字符串和字节)的最佳实践

Java 命名具有类似引用(例如:名称)的不同内容(例如:字符串和字节)的最佳实践,java,naming-conventions,Java,Naming Conventions,这是我最近在处理遗留代码时遇到的一个简单的最佳实践问题。我找不到这个特定问题的好参考,因为我们可以通过多种方式实现这一点。然而,我想知道实现这一目标的最佳和最有效的方法。以下是我的一些发现,我希望能得到其他人的意见,即命名具有类似参考的不同内容的最佳方式 示例1 String name = "Thushara"; byte[] nameByte = toBytes(name); 示例2 String nameStr = "Thushara"; byte[] nameByte = toBytes

这是我最近在处理遗留代码时遇到的一个简单的最佳实践问题。我找不到这个特定问题的好参考,因为我们可以通过多种方式实现这一点。然而,我想知道实现这一目标的最佳和最有效的方法。以下是我的一些发现,我希望能得到其他人的意见,即命名具有类似参考的不同内容的最佳方式

示例1

String name = "Thushara";
byte[] nameByte = toBytes(name);
示例2

String nameStr = "Thushara";
byte[] nameByte = toBytes(nameStr);
示例3

String strName = "Thushara";
byte[] byteName = toBytes(strName);
我知道不会有一个标准来实现这一点。因此,我想知道从可维护性或其他角度(我不知道)实现这一点的最佳方法


更新

  • 迄今为止的最佳解决方案

最好的做法是逃避这样的决定

如果需要为代表同一实体的不同类型的不同对象命名,则必须重新考虑代码。很可能存在设计问题。为什么在同一范围内需要它们?您不能将需要
字节[]
的逻辑提取到单独的方法/类中吗?你能用多态性解决它吗?也许你可以简单地在线通话

一般规则是命名更接近您拥有的域模型的变量
byteName
不携带任何有价值的信息,它应该表示有问题

唯一的例外是单元测试。显然,如果您为
toBytes()
方法编写单元测试,您将面临这个问题。但即使在这种情况下,您也可以命名对象
输入
输出
预期
实际


一旦你思考了这个问题,你就会想到如何解决这个问题。

通常我喜欢在数组的末尾用
s
来命名数组,所以它应该是
nameBytes
我喜欢在数组的末尾用
z
来命名数组,所以我投票结束这篇文章,因为它主要是基于观点的。变量有不同的作用域吗?例如,如果字符串是类级别的成员,但字节数组是类上某个方法的本地名称,那么我倾向于将直观名称(在本例中为
name
)指定给更重要的成员(字符串),将更具描述性的名称(如
nameBytes
)指定给不太重要的局部变量。基于“名称”是字符串的想法,我也会提出同样的建议,因此字符串被更恰当地描述为
name
,而字节数组是该概念的一种修改表示形式,可以命名以反映(
nameBytes
)。是的,这是一个好的做法。谢谢你的意见。期待看到更多的意见。
String name = "Thushara"; 
byte[] nameBytes = toBytes(name);