如何给项目划分模块

一个团队在接受一个项目的时候必须先从项目背景入手到需求分析以及概要设计和详细设计,今天我要说的是概要设计阶段的项目模块划分。

示例:比如现在有一个系统,包含系统管理(sysmanage),采购单(cgd),用户管理(usermanage)
模块划分常见的有三种方法:
一 以技术架构的纵向拆分方法
首先该方法适合小型的项目,开发效率高,适用于对类的抽取与重用,但是不适合大型项目对模块的抽取,否者在一个项目中有非常多的package,不易对项目进行管理和维护。具体示例如下
yycg.action.sysmanage
yycg.action.sysmanage
yycg.action.cgd
service和dao同上
抽取时要从各个层中找到yycg.action.manage,yycg.service.manage……
二 以业务模块的横向拆分方法
该方法适用与对大型项目的模块抽取,比如我们把此系统的系统管理(sysmanage)抽取出来给多个系统调用。具体事例如下:
yycg.sysmanage.action
yycg.usermanage.action
yycg.cgd.action
service和dao同上
抽取时直接将包sysmanage拿出来即可
对以上两中方法的缺点分析:sysmanage与其他模块产生依赖时,则会出错。这时候考虑第三种方法。
三 以maven为架构的拆分方法
此方法对第二种方法作了改善,但不利于项目的维护和管理。此方法就是建立三个maven工程项目,将每个项目测试,编译,打包到maven库中,当依赖方需要依赖该模块时,该模块对应的项目在maven仓库中的坐标配置在依赖放的pom.xml中,这样虽然不能彻底解决依赖问题,但是可以极大程度的降低依赖。

展开阅读全文

没有更多推荐了,返回首页