我有一个模型,模型有几个属性。 我想要做的是根据其他属性将其中一个布尔属性转换为true。
假设我们有一个名为User的模型,用户具有类似..
的属性我被要求根据生日改变法定年龄属性。 (如果用户年龄为20岁,则将其设置为true,如果不是,请将其保持为假。)我将该函数命名为 check_legal_age ,因为它将法定年龄列检查为true。
然而,我的一位同事告诉我,名称太模糊,难以弄清楚函数的作用以及函数返回的值。
经过一番对话后,我决定将该功能命名为 make_legal_age_true ,这是一个冗长但直截了当的名字。该同事还建议我命名为 trufy_legal_age
是否有一种传统的方法来命名这样的方法,使其他人在阅读代码时能够明白意图?
答案 0 :(得分:0)
如果它是一个功能,最好使用问号,并称之为is_legal_age?
答案 1 :(得分:0)
你的同事是对的,check_legal_age
不是一个好名字,不是因为它本身含糊不清,而是因为它误导因此很危险。它似乎意味着正在检查或验证对象状态,而实际上它正在被更改。
约定是改变内部对象状态的方法应该是“bang”!
方法。只需命名方法legal_age!
就可以将布尔属性设置为true
。
如果谓词方法(返回true
或false
的方法)以?
结尾,则更好。 legal_age?
和legal_age!
对我来说似乎很清楚。