我的职业生涯主要是在中小型Java项目中工作。我最近在eclipse中看到了一个包含30个项目的庞大项目。我真的没有创建许多小项目的概念,然后维护项目间的依赖关系。我们什么时候更喜欢这个而不是简单地在包中组织东西?
我猜测它是一个maven的东西(主要是使用Ant)。我一直在阅读Maven的模块概念 - 我在网上看到一些链接,建议在父模块下为web,dao和服务层创建不同的模块。它真的是一种常见/最佳实践吗?
无论有没有maven - 这种分裂真的让生活更轻松吗?将所有内容都放在一个具有明确定义的不同层的包结构的项目中是不是更紧凑?
答案 0 :(得分:7)
当需要这样做时,将项目分成API,实现,Web等组件是很常见的。大型项目就是:大型。
将组件分开是有好处的“
你可以用一个巨大的项目完成所有相同的工作,但是确定哪些地方以及原因更加困难。当明确界定这些分界线时,生活会更容易。
很多如何更容易取决于项目,但当你处理成千上万行代码时,偶尔数百万,打破这些东西可以节省巨大的头痛
答案 1 :(得分:6)
为什么选择在maven中创建单独的模块?为了帮助您的发展。真的没有其他原因。
您可能想要创建单独的模块的原因有很多:
您选择分解为模块的原因与分离到包中的原因相同,但是在更高级别,在一组包中。
30确实看起来过分了。但可能有充分的理由。由您和您的项目决定什么是模块数量的正确级别。就个人而言,我尽量不要过分分开,除非有充分的理由这样做。
[*] Tangle:描述包之间链接的混乱。包A使用B,它使用C,它使用A和B.这些东西无助于理解。
答案 2 :(得分:3)
我认为过度模块化类似于过度工程化。在我看来,最好的路线是从一个模块/项目开始并保持这一点,直到所有参与者都明白这个现有模块的一部分将从提取到自己的模块中受益。是的,这意味着在那一点上需要额外的工作,但对我来说,我宁愿做完工作,而不是在我的构建和我的开发环境方面与不必要的复杂性无休止地争夺从未真正实现的好处。
不幸的是,即使编写一行代码,项目一开始就趋于模块化到n度。
答案 3 :(得分:0)
这还有另一个优势..如果我必须在“选定”组件上部署,我不会浪费时间和资源来部署我不需要的依赖项。