V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LosLord
V2EX  ›  Java

Java 的包结构该怎么定义

  •  
  •   LosLord · 2018-07-02 21:36:35 +08:00 · 5258 次点击
    这是一个创建于 2363 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了很长一段时间 Java 了,但是之前一直都是自己开发,也没个规范,模块和功能有时候乱七八糟弄在一起,这样接下来也不是个事,所以想请教一下 规范的包结构该是什么样的。
    我也看了一下各个开源项目,因为基本都不是业务,都是类似于工具的开源项目,包结构比较好分。

    比如有个大项目: 一个系统有多个功能模块,有定时任务,有 Aop,自定义的网络框架,Bean 无数,业务基于 Spring 编写。 像这样的项目该怎么定义包结构。

    8 条回复    2018-07-03 12:31:07 +08:00
    KentY
        1
    KentY  
       2018-07-02 21:44:15 +08:00
    基本上,一种是按技术角度分, 比如就是最烂大街的 controller, dao, service, utils....
    还有一种, 如果业务上的各个分类的功能很相似, 又挺繁多, 为了维护某个业务方便, 也可以按业务来 /usermgmt/dao, usermgmt/service... /customermgmt/dao, /customermgmt/service etc.

    这个东西统一就好, 并不影响代码的质量。
    LosLord
        2
    LosLord  
    OP
       2018-07-02 22:11:41 +08:00
    @KentY #1 我先在是用第一种,小项目还好,项目一大,就乱七八糟的。第二种也想过,但是有时候共用的类都不知道放在哪
    airfling
        3
    airfling  
       2018-07-02 22:20:58 +08:00 via Android   ❤️ 1
    我基本上都是相同或者关联性比较强的放在一起
    zjsxwc
        4
    zjsxwc  
       2018-07-02 22:33:42 +08:00 via iPhone   ❤️ 1
    没什么好考虑的,无脑根据被依赖相关程度划分代码模块,当然要符合 solid 原则写代码,嗯,也就是跟着感觉走,反正重构时挪一下位置也快的
    kanezeng
        5
    kanezeng  
       2018-07-02 22:40:25 +08:00   ❤️ 1
    真的大项目,就还是拆成微服务的小项目吧,对大项目来说还是值得的
    feiyuanqiu
        6
    feiyuanqiu  
       2018-07-02 23:20:56 +08:00   ❤️ 1
    按模块分呗,用 maven 组织 module,把领域模型、基础服务拆分出单独的 module,把任务、web 也拆成单独的 module
    laball
        7
    laball  
       2018-07-03 09:17:00 +08:00   ❤️ 1
    建议按适当的粒度划分模块吧,不过,有的时候不是很好把握。
    可以先按照一个大的规则划分,然后,等模块达到一定的复杂程度后,再进行拆分;
    archangels
        8
    archangels  
       2018-07-03 12:31:07 +08:00   ❤️ 1
    可以按模块分,然后按照自己的兴趣给各个模块取个别名
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2652 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:10 · PVG 18:10 · LAX 02:10 · JFK 05:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.