命名约定:amountPaid与paidAmount

时间:2009-04-24 10:38:42

标签: naming-conventions

这里有两个样本,有两种不同的命名变量方法:

decimal amountDue = 1000;
decimal amountPaid = 800;

VS

decimal dueAmount = 1000;
decimal paidAmount = 800;

您通常会选择哪一个?为什么?

6 个答案:

答案 0 :(得分:11)

你应该使用哪一个更好的读作英语句子。例如到期金额给客户是1000美元。在我看来,#1更好。因为如果你写的客户是到期 1000美元的金额,它会打破实际变量的措辞。

答案 1 :(得分:4)

在给定的上下文中哪些是最可读的。我可以看到这个范围从你的选择到简单的“付费”和“到期”。

例如:

public decimal RemainingAmount( Invoice invoice, int quantity, Coupon[] coupons )
{
     decimal paid = coupons.Sum( c => c.Value );
     decimal due = invoice.Price * quantity;

     return due - paid;
}

答案 2 :(得分:1)

第一个(amountDue)意味着在获得有用的智能感知之前输入七个字符。我选择了第二名。

答案 3 :(得分:1)

“付费”有几个属性:paidAmount,paidDate,paidBy,paidTo等。

“Amount”是数据类型(主要是货币或BigDecimal或您的语言使用的任何内容),并没有多大意义。

答案 4 :(得分:1)

稍微搅拌一下(如果每个人都同意,就没有乐趣),我会选择选项1.

  • 它向我表明他们是相关的
  • 这是说话的自然方式。

答案 5 :(得分:1)

正如其他人所说,选项#1更好,因为命名遵循如何在句子中使用这些概念而不会听起来很奇怪。但是,我认为您还应该注意您正在建模的业务领域,以命名您的变量。可以在特定业务域中使用非常唯一的名称或术语来引用概念,当在该业务域之外的句子中使用时该概念听起来不正确。如果是这种情况,那么我将使用业务域正在使用的术语,以便代码以业务域术语表示。这有助于开发人员熟悉业务领域,并且当每个人都说同一种语言时,也可以更轻松地与客户进行通信。

例如,在这种特殊情况下,如果我发现业务单据和客户使用的是应付金额而非预期付款金额,我将按适当金额使用。