如何命名将其他布尔值转换为true的函数?

时间:2017-08-15 01:48:22

标签: ruby-on-rails naming

我有一个模型,模型有几个属性。 我想要做的是根据其他属性将其中一个布尔属性转换为true。

假设我们有一个名为User的模型,用户具有类似..

的属性
  • id(int)
  • 姓名(文字)
  • 生日(约会)
  • legal_age(boolean)

我被要求根据生日改变法定年龄属性。 (如果用户年龄为20岁,则将其设置为true,如果不是,请将其保持为假。)我将该函数命名为 check_legal_age ,因为它将法定年龄列检查为true。

然而,我的一位同事告诉我,名称太模糊,难以弄清楚函数的作用以及函数返回的值。

经过一番对话后,我决定将该功能命名为 make_legal_age_true ,这是一个冗长但直截了当的名字。该同事还建议我命名为 trufy_legal_age

是否有一种传统的方法来命名这样的方法,使其他人在阅读代码时能够明白意图?

2 个答案:

答案 0 :(得分:0)

如果它是一个功能,最好使用问号,并称之为is_legal_age?

答案 1 :(得分:0)

你的同事是对的,check_legal_age不是一个好名字,不是因为它本身含糊不清,而是因为它误导因此很危险。它似乎意味着正在检查或验证对象状态,而实际上它正在被更改。

约定是改变内部对象状态的方法应该是“bang”!方法。只需命名方法legal_age!就可以将布尔属性设置为true

如果谓词方法(返回truefalse的方法)以?结尾,则更好。 legal_age?legal_age!对我来说似乎很清楚。