类名中的模块名称

时间:2015-01-11 11:54:53

标签: ruby module naming

在重构我的用户类时,我创建了一个新的 UserService 类。经过一些工作,我决定将所有与用户相关的操作转移到一个新的微服务中,该服务位于“用户”命名空间下。

我的第一步是 User :: UserService ,这似乎有点多余,但不知何故 User :: Service 也听起来很蹩脚或懒惰的打字。

对于这种情况,流行的Ruby宝石的常见命名约定是什么

1 个答案:

答案 0 :(得分:0)

经过一些试验后,我目前的选择似乎是多余的 User :: UserService

原因是 UserService 是重构的第一个自然举措,过早引入 User :: 命名空间可能是过度设计的症状。

随着代码的成熟,将UserService重命名为User :: Service无处不在,特别是因为可以在全局命名空间上创建别名。

仅使用服务用户命名空间内部有点模棱两可,并且必须从其他命名空间键入长冗余名称可能会对模块耦合产生警告。