实际开发工作中,往往会对系统进行领域模型的设计,设计系统的可扩展性、健壮性等。同时也避免不了对数据的基本管理,比如增删改查、接口的定义与实现等。有些工作其实是类似的重复的,与业务逻辑关系不大的,这些工作往往可以通过系统自动完成,进而可以将人力成本主要集中在领域模型的设计与实现上。
DDD设计理念一般分几层,分别是:
表现层:主要用于与外界的交互,包括UI界面、开放接口等
应用层:面向用例的,复杂服务的编排等
领域层:核心业务逻辑层
基础设施层:用于对外交互,比如数据库、消息、搜索等
如下图所示,理论上开发人员应该专注于领域层的设计与开发,只需要实现领域层的逻辑,其他层的代码都应该可以自动生成。
为了实现这个小目标,调研了业界做得比较好的框架,用得比较广泛的就是MybatisGenerator。故基于该框架实现了一套零编码平台。
实现零编码的核心架构
运行之后自动生成核心模块,如下图
使用说明
一、配置项
1. 配置application.properties,主要配置数据库连接信息以及项目、包路径信息
二、三种运行方式
1. 一次运行,生成`client、dal、serviceImpl`三个核心模块, 详情参考com.rhc.auto.App
2. 根据自己需要,单独生成`client、dal、serviceImpl`任意模块中的任意代码,详情参考`com.rhc.auto.App`
3. 也可以按需生成自己想要的`repository`代码
- 详细的使用方式见:`com.rhc.auto.codegen.repository.RepositoryGenerator`
4. 与UI界面的交互
- 通过配置前端与后端的交互字段,自动生成web层代码,自动根据与前端的交互字段生成对应的后端代码,
详见`com.rhc.auto.codegen.web.SevenGroovyGenerator`