前缀变量名称以指示它们各自的范围或起源?

问题描述 投票:5回答:3

[在我工作的公司中,我已经看到很多使用前缀来表示变量的范围或起源的信息,例如m用于类成员,i用于方法内部变量,以及[C0 ](或a)以获取方法参数:

p

您对此有何看法?是推荐(还是不推荐)?在第一阶段,我发现它很丑陋,但是我使用它的次数越多,例如在处理大型方法时,它就越方便。

请注意,我不是在说匈牙利表示法,其中前缀表示类型,而不是范围。

java naming-conventions scope prefix notation
3个回答
1
投票

[我也曾在有严格前缀要求的商店工作,但过了一会儿,这变成了一种“臭味”,即代码已失去控制,并且全局变量从各处泄漏,表明代码/审查不佳。

Java的“ this”。表示法是在本地引用字段的首选方式。该变量的使用“ m”前缀已被该“ Micro ..”公司作为品牌as头而普及(他们甚至说“不要因为我们这样做而使用”)。

我遵循的一般规则是根据变量的存储名称来命名。变量名称只是一个别名。如果它存储用户名,则userName有效。如果它是用户名列表,则userNames或userNameList有效。但是,我现在避免在变量名中包含“类型”,因为类型经常更改(实际上,用户名的集合不应该是一个集合吗?等等))

归根结底,如果变量名对您记住代码在做什么很有用,那可能是个好主意。可维护性和可读性胜过“感知”的效率和简洁的语法,尤其是因为现代编译器正在根据宏使用模式来重写代码。

我希望这会有所帮助,并且很乐意在此处提供有关任何索赔的更多详细信息。

ps。对于这些类型的问题,我强烈建议使用Java样式元素。我曾经与作者一起工作,在风格方面,他们都是天才!


0
投票

注意:您的问题是一个非常基于观点的问题(这些天通常在StackOverflow中不赞成使用,但是我仍然认为这是一个值得讨论的话题。


0
投票
具有变量命名约定非常适合团队使用,并且IMO必须用于非字符串类型的语言。例如JScript。
© www.soinside.com 2019 - 2024. All rights reserved.