命名约定是否可以生成更好的可维护代码?

时间:2010-10-14 05:40:00

标签: .net naming conventions casing

我喜欢给我的变量,方法和对象描述名称。显然不会过分,但让我举几个例子。

public class Account
{
    public decimal Balance { get; set; }
}

Account account = new Account();
account.Balance = 1000;

有些人会选择接受以下操作,除非你是一个懒惰的打字员,否则这对我来说真的没有意义。

Account acc = new Account();
acc.Balance = 1000;

问题在于你有这些缩写的逻辑。你对发生的事情感到非常困惑。

想象一下以下物体。

public class Account { public DebitOrder DebitOrder { get; set; } }
public class DebitOrder { BankDetail BankDetail { get; set; } }
public class BankDetail {}

Account acc = new Account();
DebitOrder do = new DebitOrder();
BankDetail bd = new BankDetail();

if(acc.DebitOrder.SomeProperty == do.SomeProperty)
{

}

可读性降低了。总是存在intellisense的论点,只是将鼠标悬停在变量上以查看它们是什么类型,或者它们是什么类型。 可读代码,易于理解的代码。

命名约定是否会产生更好的可维护代码?

3 个答案:

答案 0 :(得分:4)

,当然命名约定可以提供更好的可维护代码。

这就是为什么,在编程课的第一天,如果你打电话给变量x或者我......那么讲师就会打动你。

你必须记住变量/方法/类等的名称纯粹是为了程序员,因为在编译时这些只是地址到内存。

你必须尝试使用​​可读的,自我解释的命名约定,良好的注释和结构良好的代码的良好平衡,以制作更好的可维护代码。

答案 1 :(得分:3)

是的,对于任何范围不是很有限的变量。

当变量的范围非常有限时,当代码围绕该变量时,您可以使用丢弃变量名称。

例如,如果循环体很小而且计数器没有重定位有任何其他含义,则循环中的计数器可以有一个简单的名称:

for (int i = 0; i < 10; i++) arr[i] = 0;

使用短名称可以更好地读取Lambda表达式:

var items = source.Select(n => n.ToString() + ".");

但是,使用短名称时不要尝试缩写。如果单个字母或众所周知的缩写没有这样做,你也可以选择更长的名字。

例如,使用n作为数值,就像上面的lambda exression一样,可行。使用仍然是缩写的更长的内容(例如itnumitmid)会使名称包含更多信息,但不足以使其有用,因此itemNumberitemId会更好

答案 2 :(得分:0)

当我用C#这样的语言编程时,我经常会给我的变量短名称,因为它更容易输入,我可以在屏幕上放入更多的代码。当你在这个区域并确切地知道一切都是什么时,这很有效,但正因为你提到的原因,对于一个局外人,甚至几个小时后你自己都会感到很困惑。不错的IDE让你可以非常轻松地重命名变量,我肯定会建议你在离开你的项目之前,或者在分享它之前做这件事。

当短变量名称合适时,Guffa提出了一些好处。