前情概要 打算做一个 Java admin 快速开发框架;将常用的库、权限管理、用户管理...啥的集成,方便平时做点小项目。 项目结构 [图片] xinyue-platform 是 parent 项目,类型是 pom xinyue-admin 是 Web 项目,用来最后打包运行的后台管理服务 xinyue-busine ..

按业务拆分模块的疑惑

前情概要

打算做一个 Java admin 快速开发框架;将常用的库、权限管理、用户管理...啥的集成,方便平时做点小项目。

项目结构

依赖关系

设计初衷

因为未来比如用这个 platform 做电商项目,可能还需要对外提供 xinyue-api-h5/xinyue-api-appliet 一类的服务;所以希望可以将业务逻辑下沉到单独的模块,可以供 admin(后台管理系统)和各个终端 API 调用

这也是为什么 xinyue-business 模块内部,分层的时候只有 entity、repository、service 层的原因了,因为具体这些服务对外提供的接口;可能路径不同,也可能需要在不同的 Web 层在进行一些业务逻辑

所以 controller 层被单独拿到了 xinyue-admin 模块(也有可能是未来的 xinyue-api-xxx 模块),如图:

疑问

目前的设计存在哪些问题?

business 按业务分包是否可以直接拆分为 xxx 模块

项目中的依赖关系如何管理

参考、分析了 4、5 个 GitHub 上高分的类似快速开发平台,发现这些项目被 Idea 的 Maven 提示 omitted for duplicate,其实也是我第一个问题里面提到的重复以来的问题;看提示 maven 应该会自动处理,主要就是心里面有点想不通,这样会不会有隐患

结语

希望各位可以给一些参考意见,小弟不胜感激

  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    89 引用 • 381 回帖 • 2 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    1508 引用 • 9952 回帖 • 573 关注
6 回帖
请输入回帖内容...
  • xinyue

    @88250 @Vanessa 求教啊,D V 大大

  • 88250

    项目结构没有所谓的标准,都是在使用过程中逐步演进的。我的建议是初期不要拆分模块,解决简单的业务就用简单的方案,基本分下包就好了。

    软件工程应以实用为主,软件过程也是随业务一起演化。框架作为软件的半成品,主要考虑的是基础功能,业界最佳实践仅作为参考,并不是一定要照搬的。

    避免过度设计,过早优化,简单的方案往往是最好的。

    2 回复
  • xinyue

    是的呢,自己重新规划了一个粗粒度的拆分;确实是自己考虑的太多了 谢谢大大

  • xinyue 1 评论

    另外,这两天做前端(使用 Vue)遇到一个问题;黑客派使用 iOS Safari 添加到桌面后,可以隐藏浏览器的工具栏;我也参考黑客派设置了 apple-mobile-web-app-capable 为 yes;总是不生效,搞了一天也没找到原因,不知为何呢?

    1 回复
    要添加 PWA 吧
    Vanessa
  • 88250
    1 回复
  • xinyue 1 评论

    已解决,感谢 @88250 @Vanessa ღ( ´・ᴗ・` )比心

    客气了
    Vanessa
请输入回帖内容 ...