我们的编程老师教我们在编程时使用匈牙利符号(例如intMyInteger
,,strMyString
...)。
但我在某处听说这实际上并没有在专业领域使用。这是真的?
编辑:我刚刚发现这实际上是“Leszynski”
我们的编程老师教我们在编程时使用匈牙利符号(例如intMyInteger
,,strMyString
...)。
但我在某处听说这实际上并没有在专业领域使用。这是真的?
编辑:我刚刚发现这实际上是“Leszynski”
你是对的; 匈牙利表示法不受欢迎。
真的。现代 IDE、对应用程序的误解、使用问题等......基本上已经扼杀了它。这并不意味着您可能不会在那里找到它,但我会避免使用它并习惯于骆驼套管和帕斯卡套管。
Microsoft 有关于命名标准的建议。他们在 .Net Framework 中使用它,许多人都遵循这一点。
MS 还拥有All-In-One Code Framework 站点,其中包含文档和示例,以帮助进一步推进这一想法和其他最佳实践(从 MS 的角度来看)。
Joel 的这篇文章将为您提供一些有关匈牙利符号的有用信息。
http://www.joelonsoftware.com/articles/Wrong.html
我们刚刚在我从事编程工作的地方讨论过这个问题。我们的决定是拥有非常清晰易懂的名称比保存几个字符更重要。
AFAIK,它专门在 Windows 下使用。匈牙利符号来自软件工程师Charles Simonyi,他当时是微软的员工。如您所见,到目前为止,它主要已被废弃。在我看来,我同意 Stroustroup 的观点,因为他说匈牙利符号的实用性仅适用于弱类型语言,但它在 OOP 语言中令人困惑,并且通常是对抽象的限制。
当您开发您的艺术(我考虑编写艺术)时,您会发现您将建立自己的命名约定。就像一个吉他手,他/她的英雄采用了某些风格。
我还没有找到任何适合我的“官方”命名约定建议。
我认为可读性是最重要的主题。
我的个人规则是:
私有变量应该以_
. 变量应使用缩写的匈牙利风格,例如s
for string
、i
for integer
、b
forboolean
等。
传递给函数的变量u
对于我来说总是以 an 开头,并且它们有一个非常独特的名称,这样uCountItemsInAList
就不必使用匈牙利语前缀,因为从命名上已经相对明确了类型。而且传递给函数的变量很可能很容易被误解,所以我认为允许使用一个长的、非常具有描述性的名称。
当我只在函数中使用类时,如果函数很短,我会以n
.
我每天编码 16 个小时,而且我很疯狂,所以我认为我的回答不能那么“错误”。虽然这个话题非常主观,但我认为可读性可以被认为是一个关键因素,我的编码方式包含了我迄今为止能够研究的所有顶级编码器的部分内容。