我们在OSGi上做了一个大项目并添加了一些公共模块。有关命名工件的讨论。
因此,命名模块的一种可能性是:
cmns-definitions
(对于常见定义),另一个是cmns-definition
,还有一个是cmns-def
。这对包名称也有一些影响。现在是
xx.xxx.xxx.xxx.xxx.commons.definitions
,如果更改为cmns-def
,则为xx.xxx.xxx.xxx.xxx.commons.def
。
在此软件包中,将包含枚举和其他定义等类,以便在整个系统中使用。
我个人倾向于cmns-definitions
,因为包内不仅有一个定义。其他人指出java.util
在那里只有1个实用程序。不过,java.util
对我来说是缩写。它可以表示 java实用程序或 java实用程序。 commons-lang
也发生了同样的事情。
您如何命名包裹?你为什么选择这个名字?
cmns-definitions
cmns-definition
cmns-def
奖金问题:如何命名cmns-exceptions
之类的内容?这就是我的名字。你能说出它cmns-xcpt
吗?
编辑:
我在这方面投入了自己的想法,希望被证实或相互矛盾。如果可以,请做。
根据我的想法,您为什么命名的背景原因是为了更容易理解其中的内容。或者,根据Peter Kriens的说法,使其易于记忆并能够通过模式自动化流程。两者都是有效的论据。
我的推理在模式方面如下:
1)当发生实质化并且在业内众所周知时,请按照您的命名进行操作 例如: “功能”就是这样的一个案例。我们有一个名为cmns-features的模块。这是否意味着我们在这个模块上有很多功能?不。它表示“实现Apache karaf”功能“文件的模块” “公地”是对行业中广为接受的“共同”的一种实质。这并不意味着“很多常见”。它的意思是“通用代码”。
如果我将extr-commons视为模块名称,我知道它包含extr的公共代码(在本例中为extract)。
2)当模块内部的一些类合作为整体提供一个独特的“一个和一个”意义时,使用单数形式来命名它。
此处包含大多数模块。如果我命名为cmns-persistence-jpa,我的意思是内部的任何类合作在一起提供cmns-persistence-api的jpa实现。我不希望它内部有两个实现,但实际上有很多类共同构成一个实现。水晶清晰的我。没有?
3)当一组类完成的唯一目的是通过亲和力收集类,但是这些类没有合作没有目的时,使用复数。
以下是cmns-definitions(整个系统使用的枚举)的示例。
或者,使用缩写可以避免问题,例如: cmns-def,也可以由人类读者“解释扩展”为cmns-definitions。很多人也使用“xxxx-util”来表示xxxx-utilities。
还可以使用第三个选项将一起打包,使用一个本身就意味着复数的名称。脑海中浮现出“api”这个词,但任何复数形容词都会像“包”一样。
支持这些案例(3)是众所周知的模块,如commons-collections(使用复数)或commons-dbcp(使用缩写)或commons-lang(再次缩写)以及使用api将类打包在一起的任何内容亲和力。
来自阿帕奇:
commons-collections - >许多强大的数据结构,可以加速最重要的Java应用程序的开发
commons-lang - > java.lang API的辅助工具主机
commons-dbcp - >几个数据库连接池的包
答案 0 :(得分:2)
'这只是一个名字......'
在我漫长的职业生涯中,我发现这些正确的名字可以在生产力方面产生巨大的变化。如果您使用定义,定义或 def ,只要您保持一致并使用模式,我认为它不会有所作为。名称易于记忆,可用于自动化流程。基于一致命名方案的构建比使用ad-hoc且没有可辨别模式的“漂亮的人类显示”名称的构建更容易使用。
如果使用模式,名称往往会变短。现在,使用这些名字的人通常会花很多时间与他们在一起。因此,它们的可读性并不像它们的助记符值那么重要。事实证明,3或4个字符的缩写令人惊讶地强大。其中一个原因是它们运作良好,只有一个可能的缩写,而如果你走得更长则有很多候选者。
无论如何,大多数导入部分是整体一致性。祝你好运。
答案 1 :(得分:0)
definitions
(或def
或definition
)是一个坏名称,因为它对读者没有任何语义。你是一个面向对象的世界(我想) - 试着遵循它的惯例和原则。 Maven中的模块应该以它们包含的最大“抽象”命名。 “定义”是一种形式,而不是一种意义。
您的问题类似于:“哪个班级名称更好FileUtilities
或FileUtils
”。答案:没有。
答案 2 :(得分:0)
基本上,您使用“定义”和“例外”执行的操作是为您的其他模块提供一种API。所以我建议将定义,异常和添加接口组合起来。然后将它全部称为cmns-api是有意义的。我通常更喜欢单数名称,因为它们较短但你可以自由决定,因为它只是一个名字。