引题:这两天整理资料~~整理时翻出来前一阵子群里的某个朋友发给我让我帮忙解决的一段代码~~~由于当时忙碌没有细看,于是又翻看了一遍。说实话变量命名上确实有些糟糕(o(∩_∩)o...嘘~~大家不要说是谁哈~~)。于是我想发一个小讨论,就变量命名法方面一起再次学习深入一下。切入正题:以前在做C++的时候,由于微软的影响,在命名规则上普遍使用的都是匈牙利命名法。这里咱们暂且不讨论匈牙利命名法是否能够带来代码成本的最大收益,至少他影响了一大批代码开发人员。随着eclipse等高智能IDE的发展,我们似乎已经不需要再去使用一系列复杂的前缀来标识我们的变量。在刚刚转到Java的时候我还保留着用m_来写一个成员变量。但是随后在翻看了很多大师级的人物编写的代码之后,我发现几乎没有那个声名显赫的开源的项目还在用这种大名鼎鼎命名法。于是我也就慢慢的改掉了这种繁琐的命名习惯。这都是后话。提出题目:1.在Java的代码开发过程中,你是否还愿意去使用匈牙利命名法来命名你的变量吗?2.在各位的公司的开发规则中是否有还有参照匈牙利命名法指定的准则吗?
但是命名要有意义
不能出现诸如a,b,a1,b1,这种(@#&%(*&@#(%&@#%&自己也看不懂的名字一般都是那个字段的英文或者拼音之类的
诸如: 工程区分---projectdivision 详细画面---projectdetails
之类的,虽然有点长,但是要让人一看就明白意思
否则你定义a1到a10,过2个礼拜,回来一看,册那我估计你自己也不清楚自己写了什么了
所以还是要有意义
2. 我的公司在我们小组内没有使用。别的小组不知道。个人感觉Java这种静态强类型和语法检查的语言中,匈牙利命名法自然失去了他的意义。编译器就负责搞定了一切。所以Java中没有人使用这种命名方法。在Java中如果使用了这种命名方法
1. 成本太高。
2. 收益甚微。
3. 难以实施。
Java程序员懒惰,Java语法检查强大。
例如 String sName; 第一个字母s代表变量的类型,后面单词才代表变量的含义,再例如 int iAge等
如它就对常用Windows对象名称就有比较明确的缩写规则。
不用,我用Pascal命名法,就是java命名规范那种,类是首字母要大写,变量首字母小写,其他字母大写那种
2. C/C++ 语系的语言典型的就算 Java 和 C# 了,因为现代开发工具的强大和语言本身的简洁(相对于C++),所以一般也都有自己的命名风格(一般以自带的类库的统一命名风格为参照基准),个人感觉与 C# 相比 Java 的命名风格的代码阅读起来要更舒服一些。
3. 老一代编程语言例如 C++,其经典的开发环境与 Java 的 Eclipse 和 C# 的 Visual Studio 2005/2008 相比实在功能有限,所以一般借助于命名法来提高代码的可读性和可维护性。
从java的命名规范来看,推广的是骆驼命名法。确实如sunyujia所说在很多框架中像struts2中对匈牙利命名法的成员变量会有无法找到其get和set方法。从这点来说,在Java中使用匈牙利命名法确实是不和谐的。
这样的命名法应该是骆驼命名法吧,Pascal命名法是变量首字母需要大写。在borland的BCB中默认是这样的命名方法。其实我觉得匈牙利命名法比较起来比较优厚的地方是。对于变量的名称来说,赋予了更加明确的意义。其实我想讨论的是大家是否愿意给予变量更多明确的意义呢?
JAVA资料太多?选中想收藏的文字(图片),右键选“收录到易载”,搞定!