【问题标题】:Package namespaces in scala - and the reverse domain naming schemescala 中的包命名空间 - 以及反向域命名方案
【发布时间】:2015-10-21 01:34:35
【问题描述】:

我注意到几个 TypeSafe 附属项目,如 sprayakka,不包括 com.org. 作为它们定义的包名称的开头。

我想知道这种偏离 Java 的“反向域”包命名方案是否存在技术含义。对 java 互操作性有什么可能的影响吗?在我自己的库和包中跳过 scala 包名称中的 com/org 成分可能会产生什么技术影响?

当然,反向域方案通过将命名空间链接到 Internet 注册商唯一分配的资源来缓解包命名空间冲突的问题,因此取消该模型的项目没有这种保护措施,但我不会严格称其为 技术上的含义,所以我们可以忽略...

【问题讨论】:

  • 顺便说一句,docs.scala-lang.org/style/naming-conventions.html 有点建议坚持反向域名命名,但它可能已经过时了。
  • Scala 不遵循反向域指南没有技术兼容性问题。Java 中也出现了遵循或不遵循它的相同问题。通常的论点是,长包名称很糟糕,为什么每次公司更改名称时都浪费时间更改每个源文件,而不是您已经观察到的冲突风险。
  • 两天前你已经问过(并删除)了这个问题stackoverflow.com/questions/33190124/…
  • 没错。因为在周末提出的问题真的从来没有得到回答,这似乎是让问题得到回答的唯一方法。我认为赏金不适合这种情况,它是 meta 来解决 imo 的问题。

标签: scala akka


【解决方案1】:

反向域方案缓解了包命名空间冲突的问题

这是该计划的唯一原因,应该可以回答您的问题。我知道的包结构中唯一的互操作性问题是 Scala 包名称可以包含 Java (and Scala, using backticks) 关键字。

【讨论】:

  • 虽然超出了问题的范围,您能否简要介绍一下最坏情况下的互操作性场景?
  • 对此,很简单,您无法从 Java 代码访问此类包中的类型(忽略反射)。
猜你喜欢
  • 2014-11-02
  • 2012-06-10
  • 2018-10-11
  • 2016-10-23
  • 2012-09-09
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
相关资源
最近更新 更多