写了很长一段时间 Java 了,但是之前一直都是自己开发,也没个规范,模块和功能有时候乱七八糟弄在一起,这样接下来也不是个事,所以想请教一下 规范的包结构该是什么样的。
我也看了一下各个开源项目,因为基本都不是业务,都是类似于工具的开源项目,包结构比较好分。
比如有个大项目: 一个系统有多个功能模块,有定时任务,有 Aop,自定义的网络框架,Bean 无数,业务基于 Spring 编写。 像这样的项目该怎么定义包结构。
1
KentY 2018-07-02 21:44:15 +08:00
基本上,一种是按技术角度分, 比如就是最烂大街的 controller, dao, service, utils....
还有一种, 如果业务上的各个分类的功能很相似, 又挺繁多, 为了维护某个业务方便, 也可以按业务来 /usermgmt/dao, usermgmt/service... /customermgmt/dao, /customermgmt/service etc. 这个东西统一就好, 并不影响代码的质量。 |
2
LosLord OP @KentY #1 我先在是用第一种,小项目还好,项目一大,就乱七八糟的。第二种也想过,但是有时候共用的类都不知道放在哪
|
3
airfling 2018-07-02 22:20:58 +08:00 via Android 1
我基本上都是相同或者关联性比较强的放在一起
|
4
zjsxwc 2018-07-02 22:33:42 +08:00 via iPhone 1
没什么好考虑的,无脑根据被依赖相关程度划分代码模块,当然要符合 solid 原则写代码,嗯,也就是跟着感觉走,反正重构时挪一下位置也快的
|
5
kanezeng 2018-07-02 22:40:25 +08:00 1
真的大项目,就还是拆成微服务的小项目吧,对大项目来说还是值得的
|
6
feiyuanqiu 2018-07-02 23:20:56 +08:00 1
按模块分呗,用 maven 组织 module,把领域模型、基础服务拆分出单独的 module,把任务、web 也拆成单独的 module
|
7
laball 2018-07-03 09:17:00 +08:00 1
建议按适当的粒度划分模块吧,不过,有的时候不是很好把握。
可以先按照一个大的规则划分,然后,等模块达到一定的复杂程度后,再进行拆分; |
8
archangels 2018-07-03 12:31:07 +08:00 1
可以按模块分,然后按照自己的兴趣给各个模块取个别名
|