Java项目的包结构?
在Java Web应用程序中设置包结构的最佳实践是什么?
你将如何设置你的src,unit testing代码等?
你可以按照maven的标准项目布局 。 你不必真的使用maven,但是将来可以使转换更容易(如果需要的话)。 另外,其他的开发者也会习惯看这个布局,因为很多开源项目都是这样布局的,
您可能会检查一些现有的资源:
- 正确地打包你的Java类
- Spring 2.5架构
- Java教程 – 命名一个包
- SUN命名约定
对于什么是值得的,我倾向于使用自己的个人指导方针如下:
- 从反向域开始,例如“com.mycompany”。
- 使用产品名称,例如“myproduct”。 在某些情况下,我倾向于使用不属于特定产品的普通包装。 这些最终将根据这些常见类别的function进行分类,例如“io”,“util”,“ui”等。
- 在此之后,它变得更自由forms。 通常我根据项目,function区域,部署等进行分组。例如,我可能会有“project1”,“project2”,“ui”,“client”等。
其他几点:
- 在我从事devise文档的软件包名称工作的项目中,这是很常见的。 通常产品已经分成function或用途的区域。
- 不要过分强调将常用function推入更高级的包中。 等待那里需要跨项目,产品等,然后重构。
- 观察包间依赖关系。 它们并不全是坏的,但它可能意味着可能是单独的单元之间的紧密耦合。 有些工具可以帮助你跟踪这一点。
我会build议按function创build你的包结构,而不是实现层。 一个好的写法是Java的做法:按function打包,而不是层
在这里,您可以阅读关于标准目录布局和关于java项目的目录/包结构。
我通常喜欢有以下几点:
- bin(二进制文件)
- doc(文档)
- inf(信息)
- lib(库)
- res(资源)
- src(来源)
- tst(testing)
这些可能被认为是非常规的,但我觉得这是一个很好的组织方式。
另一篇关于Java包结构的非常好的文章: pipe理Java类path
我通常有我的文件夹层次结构的方式 –
- 项目名
- SRC
- 箱子
- testing
- 库
- 文档