问题标签 [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.

0 投票
20 回答
11876 浏览

conventions - 人们在现实世界中使用匈牙利命名约定吗?

是否值得学习该约定,或者它是否会损害可读性和可维护性?

0 投票
37 回答
142020 浏览

language-agnostic - 为什么我不应该使用“匈牙利符号”?

我知道匈牙利语指的是什么 - 提供有关变量、参数或类型的信息作为其名称的前缀。每个人似乎都强烈反对它,尽管在某些情况下这似乎是一个好主意。如果我觉得有用的信息正在被传递,为什么我不应该把它放在可以得到的地方呢?

另请参阅:人们在现实世界中使用匈牙利命名约定吗?

0 投票
20 回答
3108 浏览

coding-style - 摆脱匈牙利符号的最佳方法?

假设您继承了一个 C# 代码库,该代码库使用一个具有 200 个静态方法的类来提供核心功能(例如数据库查找)。在那个班级的许多噩梦中,匈牙利符号(不好的那种)的大量使用。

您会重构变量名称以删除匈牙利符号,还是不理会它们?

如果您选择更改所有变量以删除匈牙利符号,您的方法是什么?

0 投票
22 回答
26368 浏览

naming-conventions - 匈牙利符号的好例子?

这个问题是为了寻找匈牙利符号的好例子,所以我们可以把这些集合在一起。

编辑:我同意匈牙利语的类型不是那么必要,我希望有更具体的例子来增加可读性和可维护性,就像乔尔在他的文章中给出的那样(根据我的回答)。

0 投票
20 回答
1082 浏览

variables - 您是否遵循原始程序员的命名约定?

如果你从某人那里接手一个项目来做简单的更新,你会遵循他们的命名约定吗?我刚收到一个项目,以前的程序员到处使用匈牙利符号。我们的核心产品有一个命名标准,但多年来我们有很多人做自定义报告,做他们想做的任何事情。

不过,我没有时间更改代码中已经存在的所有变量名称。

我倾向于继续他们的命名约定以保持可读性。

0 投票
29 回答
8009 浏览

c# - 变量前缀(“匈牙利符号”)真的有必要了吗?

由于 C# 是强类型的,我们真的需要为变量添加前缀吗?

例如

我过去常常加前缀,但以后我看不到任何好处

0 投票
16 回答
7437 浏览

wpf - textBoxEmployeeName 与 employeeNameTextBox

您使用哪种命名约定,为什么?

我喜欢使用employeeNameTextBox,因为:

  • 从英语的角度来看,这似乎更自然。
  • 我发现使用 Intellisense 查找起来更容易。
  • 该约定类似于用于事件(MouseClickEvent、MouseClickEventHandler)和依赖属性(VisiblityProperty)的约定。

注意:我使用的是全名而不是缩写(例如“tb”),因为它符合 MS 的命名约定,即避免使用缩写。

http://msdn.microsoft.com/en-us/library/ms229045.aspx

0 投票
25 回答
18796 浏览

c# - 为什么我不应该为我的字段添加前缀?

我从来都不是匈牙利符号的粉丝,除非你在做一些非常低级的编程,否则我一直觉得它毫无用处,但是在我从事的每个 C++ 项目中,都强制执行了某种匈牙利符号策略,并且使用一些“不是真正的匈牙利语”前缀作为字段的 m_,静态的 s_,全局的 g_ 等等。

很快我就意识到它在 C# 中是多么无用,并逐渐开始放弃我所有的旧习惯......但是'm_'的东西。我仍然在私有字段上使用 m_ 前缀,因为我真的发现能够区分参数、本地和字段非常有用。

MSDN 上字段页面的命名约定说我不应该,但没有说明原因(例如,Google 的约定通常倾向于合理化他们的规定)。

是否有我不应该这样做的原因,或者这只是风格问题。如果是后者,前缀通常被认为是一种不好的风格吗?我可以期待其他代码库工作人员的负面反应吗?

0 投票
2 回答
14640 浏览

objective-c - Apple 的 API 中的“k”前缀表示什么?

我遇到过许多名为k+someVariableNameHerek++的核心基础变量APILibraryName(2Char)示例someVariableNameHere。这个前缀K表示什么?

示例包括:

kGLPFAStereo
kCollectionLockBit
kSetDebugOption

0 投票
3 回答
501 浏览

naming-conventions - 匿名类型的良好命名约定

匿名类型可以被认为是“设置一次”Object类型,而普通的 oldObject或 Variant 可以设置多次。对象或变体的寿命往往很短,而匿名类型的寿命预计会更长,因此传达意图很重要。

使用匿名类型时,您使用什么命名约定来传达意图?

我搜索了“命名约定”问题,但对于与对象或变体不同的匿名类型,答案仍然难以捉摸。

匈牙利符号就像舞会之夜的一个巨大的鼻子疙瘩,所以那里可能没有什么用处。

既然匿名类型一旦被实例化就不能改变,不应该根据它的意图来命名吗?