我看到在它的数据类型写的旧程式码的变量:你使用什么分类变量?
double dblMyVar;
int intYourVar;
String strTheirVar;
但是,如今,它似乎是老式的。这种方法的优点是你可以即时看到某个变量的类型。但我不喜欢长变量名称。每当我我能说出我在一个单一的字符变量,如:
private Product p = new Product();
没有命名变量现代化的“良好做法”或约定?你/你的公司使用什么?
我看到在它的数据类型写的旧程式码的变量:你使用什么分类变量?
double dblMyVar;
int intYourVar;
String strTheirVar;
但是,如今,它似乎是老式的。这种方法的优点是你可以即时看到某个变量的类型。但我不喜欢长变量名称。每当我我能说出我在一个单一的字符变量,如:
private Product p = new Product();
没有命名变量现代化的“良好做法”或约定?你/你的公司使用什么?
如有疑问,请咨询Java语言规范(JLS)。以下是有关Naming Conventions的部分。
// class member only if needed
private Product product;
// instantiates before using it
product = new Product();
在名称中声明变量类型非常没用,因为IDE会在鼠标悬停时向您显示其类型。但是,对于其他开发人员(特别是如果您有大量变量)使用单个字符名称可能会让人感到困惑,并且违背了自我记录原则。
这是一个很好的观点,但是,特别是当你进行持久化时(当你必须在属性和表格中重复字段名称时),长名称对代码来说可能会更慢并且无聊。 – Alex 2012-02-02 12:34:05
@darth_alexious这取决于你如何做你的持久性。这可能是一个有效的观点,即使对于我来说记住'var s'或'var something'是一样的,但是如果你使用Hibernate/JPA /任何其他的东西,它几乎没有区别。 – Marcelo 2012-02-02 12:41:19
的确如此。我必须在我的项目中使用Hibernate,但同时,它太小而不值得。 – Alex 2012-02-02 12:45:46
y_xName,对于local/member/parameter/static,y是l/m/p/s。 x可以是int,f是float,p是指针等等。也许sp是共享指针。对于大多数类型的对象/引用,很少有任何东西。我更喜欢代码是自我解释的,因此没有像“ p“或”m_p“。说出它是什么。如果它是一个简短的代码片段,它实际上只是一种通用的“产品”,我可能会将其命名为l_Product。即使你试图保持76(?)个字符的线宽,在合适的位置打破线条,然后缩进可以使它看起来没问题,并且你仍然可以从冗长的名字中看到什么是实际发生。
那么这只是我对其采取..
是的,的确如此。我觉得有点无聊,使用像“PreparedStatement preparedStatement = connection.prepareStatement(sql);”并随时随地使用[preparedStatement] ...我更喜欢p或pst之类的anithing,也使它更易读... – Alex 2012-02-02 12:52:16
这个符号被称为“匈牙利”,并通过微软推广,使用它,如果你的作品:http://en.wikipedia.org/wiki/Hungarian_notation
太棒了!我不知道这种做法有背后的历史和理论......非常有趣...... – Alex 2012-02-02 12:43:01
你应该使用“单个字母变量”唯一的时间是很短的一段代码中,例如“foreach(var i in item)”或“using(var p = new Product())”。当然,这可以归结为您自己的偏好,但Visual Studio中有一个非常漂亮的小插件叫做StyleCop。它几乎涵盖了所有的样式检查,并且与ReSharper配合使用,它可以实时进行,甚至为您解决问题。
这取决于语言。
关于C#:
MyVariable
):帕斯卡情况下_myVariable
或myVariable
):骆驼情况i
,j
,z
...)通常是可以的,如果使用限于一个小范围。但这都是关于个人喜好。
在MSDN上编辑:General Naming Conventions。
每种语言/框架往往都有它自己的约定。例如,[Java](http://www.oracle.com/technetwork/java/codeconv-138413.html)和[.NET](http://msdn.microsoft.com/zh-cn/library/ms229042的.aspx)。 – LukeH 2012-02-02 12:21:42