问题标签 [hungarian-notation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
conventions - 人们在现实世界中使用匈牙利命名约定吗?
是否值得学习该约定,或者它是否会损害可读性和可维护性?
language-agnostic - 为什么我不应该使用“匈牙利符号”?
我知道匈牙利语指的是什么 - 提供有关变量、参数或类型的信息作为其名称的前缀。每个人似乎都强烈反对它,尽管在某些情况下这似乎是一个好主意。如果我觉得有用的信息正在被传递,为什么我不应该把它放在可以得到的地方呢?
另请参阅:人们在现实世界中使用匈牙利命名约定吗?
coding-style - 摆脱匈牙利符号的最佳方法?
假设您继承了一个 C# 代码库,该代码库使用一个具有 200 个静态方法的类来提供核心功能(例如数据库查找)。在那个班级的许多噩梦中,匈牙利符号(不好的那种)的大量使用。
您会重构变量名称以删除匈牙利符号,还是不理会它们?
如果您选择更改所有变量以删除匈牙利符号,您的方法是什么?
naming-conventions - 匈牙利符号的好例子?
这个问题是为了寻找匈牙利符号的好例子,所以我们可以把这些集合在一起。
编辑:我同意匈牙利语的类型不是那么必要,我希望有更具体的例子来增加可读性和可维护性,就像乔尔在他的文章中给出的那样(根据我的回答)。
variables - 您是否遵循原始程序员的命名约定?
如果你从某人那里接手一个项目来做简单的更新,你会遵循他们的命名约定吗?我刚收到一个项目,以前的程序员到处使用匈牙利符号。我们的核心产品有一个命名标准,但多年来我们有很多人做自定义报告,做他们想做的任何事情。
不过,我没有时间更改代码中已经存在的所有变量名称。
我倾向于继续他们的命名约定以保持可读性。
c# - 变量前缀(“匈牙利符号”)真的有必要了吗?
由于 C# 是强类型的,我们真的需要为变量添加前缀吗?
例如
我过去常常加前缀,但以后我看不到任何好处。
wpf - textBoxEmployeeName 与 employeeNameTextBox
您使用哪种命名约定,为什么?
我喜欢使用employeeNameTextBox,因为:
- 从英语的角度来看,这似乎更自然。
- 我发现使用 Intellisense 查找起来更容易。
- 该约定类似于用于事件(MouseClickEvent、MouseClickEventHandler)和依赖属性(VisiblityProperty)的约定。
注意:我使用的是全名而不是缩写(例如“tb”),因为它符合 MS 的命名约定,即避免使用缩写。
c# - 为什么我不应该为我的字段添加前缀?
我从来都不是匈牙利符号的粉丝,除非你在做一些非常低级的编程,否则我一直觉得它毫无用处,但是在我从事的每个 C++ 项目中,都强制执行了某种匈牙利符号策略,并且使用一些“不是真正的匈牙利语”前缀作为字段的 m_,静态的 s_,全局的 g_ 等等。
很快我就意识到它在 C# 中是多么无用,并逐渐开始放弃我所有的旧习惯......但是'm_'的东西。我仍然在私有字段上使用 m_ 前缀,因为我真的发现能够区分参数、本地和字段非常有用。
MSDN 上字段页面的命名约定说我不应该,但没有说明原因(例如,Google 的约定通常倾向于合理化他们的规定)。
是否有我不应该这样做的原因,或者这只是风格问题。如果是后者,前缀通常被认为是一种不好的风格吗?我可以期待其他代码库工作人员的负面反应吗?
objective-c - Apple 的 API 中的“k”前缀表示什么?
我遇到过许多名为k
+someVariableNameHere
或k
++的核心基础变量APILibraryName(2Char)
示例someVariableNameHere
。这个前缀K
表示什么?
示例包括:
kGLPFAStereo
kCollectionLockBit
kSetDebugOption
naming-conventions - 匿名类型的良好命名约定
匿名类型可以被认为是“设置一次”Object
类型,而普通的 oldObject
或 Variant 可以设置多次。对象或变体的寿命往往很短,而匿名类型的寿命预计会更长,因此传达意图很重要。
使用匿名类型时,您使用什么命名约定来传达意图?
我搜索了“命名约定”问题,但对于与对象或变体不同的匿名类型,答案仍然难以捉摸。
匈牙利符号就像舞会之夜的一个巨大的鼻子疙瘩,所以那里可能没有什么用处。
既然匿名类型一旦被实例化就不能改变,不应该根据它的意图来命名吗?