9

示例:我有一个Person班级和一个Role班级。我想从两者中提取角色功能Role并将其提取Person到mixin中。我得到了两个 mixin:Actable被包含在RoleAdaptablefor 中Person

我有时想不出一个合适的英文单词。在上面的例子中,adaptable 似乎更适合角色而不是人,因为角色可以适应,因此是可适应的。一个更好的名称将是通用的,但它打破了以 ...able 结尾的 mixin 名称的约定。(虽然它仍然是一个形容词。)

另一个例子是当我想添加一个允许检查的模块时,是否允许一个人查看其他人。您如何找到以 ...able 结尾的名称?Viewable看起来不合适,可以查看的人应该是可见的。我现在坚持showable(适合控制器中的方法名称)。但是话又说回来,可以显示的是 Person ,应该显示的不是要显示的人。

所以我想我的问题是,当模块名称没有以 ...able 结尾的正确英文形容词时,我应该选择另一个不以 ...able 结尾的形容词还是应该给它一个不完全的名称合身?

4

2 回答 2

3

那么前缀呢?

CanDoSomethingMoreComplexThanASingleVerb

编辑:虽然我知道我本身并没有提供约定(感谢 arulmr 提出),但Can描述某些东西的命名约定是许多公司事实上的本地化命名标准的一部分,因为它允许更详细的描述您尝试混合的功能。例如CanAct,andCanBeCastInPlay是使用 and 的原始作者的上下文的不同属性,Person并且与and或其他等价物Role相比,and 更容易理解和理解。ActablePlayCastable

底线:不要仅受语言和约定的限制:)

于 2014-01-15T10:42:05.273 回答
1

我倾向于详细描述模块并对其包含的代码进行更长的描述;就像是: PersonRoleFunctionality

我也会经常给它命名;并将其与其他混音一起归档在适用于从中提取的对象的目录下,所以我最终 include Extracts:Person:RoleFunctionalityapp\models\extracts\person\目录中

于 2013-05-17T10:41:30.100 回答