其他分享
首页 > 其他分享> > 代码的分层结构

代码的分层结构

作者:互联网

代码要如何组织才能提高可维护性呢?controller - service - repo 经典三层结构: ``` module ├─controller ├─model ├─repo └─service ``` 这样的分层比较基础,项目发展到一定规模,模块间重用多起来,就会出现各种问题,显得灵活性不够了,还有形成循环引用的风险。 . 借鉴了DDD的分层,可以将代码按下面进行分层: ``` module ├─action ├─application │ ├─dto │ └─service ├─domain │ ├─model │ └─rule └─infra ``` 1. action,放置controller, 负责参数提取和验证 2. application/service,面向request的Facade service,组合底层服务满足业务需求 3. application/dto,面向request的数据封装,包括输入数据和输出数据 4. domain/rule,完整的业务逻辑实现,只调用本模块的infra 5. domain/model,完整的数据建模。 6. infra,原子级的数据交互层,可以与DB,MQ,ES等进行交互操作 有一些调用原则: 1. 只能由上层引用下层,action -> application -> domain -> infra 2. 跨模块调用时,只能由一个模块service调另一个模块的rule,这样可以避免循环引用,使调理清晰 当然,这些都是手段而已,不能保证一定会有好的代码。好的代码都需要用心去写,与君共勉。

标签:domain,service,代码,infra,application,分层,模块,结构
来源: https://blog.51cto.com/wikiou/2901741