包名不应该用来表达模块完整的意思,包名应该仅用作与同包下的其他包做区分。
遇到适当的时候应该向范围更大的语义上取名,如已存在一个包代表 51-100 的范围,现在你想新建一个包 1-30,如果不存在 31-50,应当向上取包名成为 1-50;如果存在 31-50,应当取包名为 1-50.1-30 和 1-50.31-50 两个包。
对于题中的情况,应该去除重复的部分,仅留下关键区分的信息:
com.coalmine.management
com.coalmine.execution
如果除了子系统,还有非子系统,那就命名为:
com.coalmine.subsystem.management
com.coalmine.subsystem.execution
如果除了生产子系统,还有非生产子系统,那就命名为:
com.coalmine.subsystem.production.management
com.coalmine.subsystem.production.execution