如何将应用程序构造为多个项目,以及如何用Java命名包?
我想知道您是如何用Java设置项目的。例如,在我当前的工作项目中,一个有六年历史的J2EE应用程序,大约有200万LoC,我们在Eclipse中只有一个项目。包结构分为层,然后是域,因此如下所示。一个巨大的ant脚本正在从这个源文件夹构建不同的JAR 就我个人而言,我认为最好有多个项目,至少每一层都是这样。最近,我在玩一个类似这样的项目结构:如何将应用程序构造为多个项目,以及如何用Java命名包?,java,structure,packages,Java,Structure,Packages,我想知道您是如何用Java设置项目的。例如,在我当前的工作项目中,一个有六年历史的J2EE应用程序,大约有200万LoC,我们在Eclipse中只有一个项目。包结构分为层,然后是域,因此如下所示。一个巨大的ant脚本正在从这个源文件夹构建不同的JAR 就我个人而言,我认为最好有多个项目,至少每一层都是这样。最近,我在玩一个类似这样的项目结构: Domainproject(仅包含所有其他项目所需的带注释的POJO) 数据层(仅持久性) 业务逻辑(服务) 演讲者 看法 这样,应该更容易交换组件。
- Domainproject(仅包含所有其他项目所需的带注释的POJO)
- 数据层(仅持久性)
- 业务逻辑(服务)
- 演讲者
- 看法
这引出了我的第二个问题:您如何命名您的项目和包?您的方法很有意义。我通常会分解成一个模型(共享)、多个库,然后分解成使用这些代码和GUI的应用程序——所有这些都是单独的项目。我倾向于遵循实用主义程序员关于构建工具集的格言,而不是应用程序。这样你可以用很多不同的方式重新组装你的组件 每个库/应用程序都是自己的项目,有单元/功能测试和可交付成果(在您的情况下,是一个Maven工件,您可以适当地存储和版本) 唯一让人头疼的是管理这些组件之间的接口和链接。在这里,有效的集成测试环境是关键 这引出了我的第二个问题:如何解决 你有没有列出你的项目和计划 包裹 对于项目名称,我更喜欢像Longhorn=WinVista这样的内部名称。这个名字永远不会改变(就像我孩子的名字一样)。因此,营销等部门可以注册任何名称、重新命名等 包装是(个人)偏好和风格的问题。通常由高级程序员决定结构。当然,也有一些“标准”,比如UI类的“gui”、接口实现的“util”、“misc”、“impl”、域对象类的“domain”,等等,您应该一致地使用这些标准并表达您的风格