我从这里取消了“蓝精灵命名”一词(21号)。为了省去不熟悉的人的麻烦,Smurf命名是为一堆相关的类,变量等添加通用前缀的行为,因此您最终将“ a SmurfAccountView
传递SmurfAccountDTO
给SmurfAccountController
”,等等。
我通常听到的解决方案是创建一个smurf名称空间并删除smurf前缀。通常,这对我来说很好,但是我遇到了两个问题。
我正在与一个图书馆一起
Configuration
上课。它可以被调用,WartmongerConfiguration
但是在Wartmonger命名空间中,因此它被称为Configuration
。我同样有一个Configuration
可以调用的类SmurfConfiguration
,但是它在Smurf命名空间中,因此是多余的。我的代码中有些地方Smurf.Configuration
出现在旁边,Wartmonger.Configuration
并键入完全限定的名称比较笨拙,并且使代码的可读性较差。处理一个SmurfConfiguration
and 会更好(如果这是我的代码而不是一个库)WartmongerConfiguration
。我
Service
在Smurf命名空间中有一个可能称为的类SmurfService
。Service
是运行Smurf作业的复杂Smurf库顶部的外观。SmurfService
似乎是一个更好的名字,因为Service
没有Smurf前缀是非常通用的。我可以接受的是,这SmurfService
已经是一个通用且无用的名称,而去除蓝精灵只是使这一点更加明显。但是它本来可以命名为Runner
,Launcher
等等,但对我来说仍然会“感觉更好”,SmurfLauncher
因为我不知道a的Launcher
作用,但是我知道a的SmurfLauncher
作用。您可能会争辩说a的Smurf.Launcher
行为应该与a的行为一样明显Smurf.SmurfLauncher
,但我可以看到`Smurf.Launcher是某种与安装相关的类,而不是启动smurfs的类。
如果有一种开放和封闭的方式来处理这两种情况,那将是很好的。如果不是,有什么常用的方法可以减轻他们的烦恼?
SmurfJob
s,或者在技术上运行它们以与Smurf文档的语言保持一致。根据上述以及其他答案,我将重命名SmurfService
为SmurfJobRunner
。似乎1号没有我预期的与语言无关的最佳解决方案。我可以看到在哪里进行SmurfConfiguration
电话接听是正确的选择,但就我而言,Configuration
即使遇到麻烦,我也认为最好Wartmonger.Configuration
。
Smurf.Configuration
和SmurfConfiguration
感觉不同?当然不是多余的字符了吗?(Config
如果长度是问题,请缩短。)是否Smurf.Configuration
有没有的问题SmurfConfiguration
?
Smurf.Launcher
发射蓝精灵还是发射SmurfJob
s?也许可以称之为Smurf.JobLauncher
?