不恰当的目录结构会让代码很自然的变得难以重构,最后变成开发者的焦油坑。
通常MVC项目的目录结构
下述目录结构随代码增多而渐渐变的力不从心,最明显的是文件之间的依赖关系变得错综复杂。
|---- common 通用模块
|--- exception
|--- util
|--- ...
|---- XXXX 业务模块
|---- controller 控制器
|---- service 业务逻辑
|---- dao 持久层
|---- model 数据库表映射实体类
|---- dto
|---- ...
|---- ...
改进的目录结构
下述目录结构通过增加目录层级,提高各层内的内聚和降低各层之间的耦合,把混乱代码造成的影响范围降低。
|--- common 通用模块
|--- exception
|--- util
|--- ...
|--- XXXX 业务模块
|---- application
|---- controller 控制器
|---- ... 更多的比如任务调度处理器
|---- business 业务层
|---- service
|---- ... 更多的比如领域驱动对象
|---- persistence 持久层
|---- dao
|---- mapper
|---- entity 数据库表映射实体类
|---- dto
|---- util
|---- ...