实际开发工作中,往往会对系统进行领域模型的设计,设计系统的可扩展性、健壮性等。同时也避免不了对数据的基本管理,比如增删改查、接口的定义与实现等。有些工作其实是类似的重复的,与业务逻辑关系不大的,这些工作往往可以通过系统自动完成,进而可以将人力成本主要集中在领域模型的设计与实现上。

 

DDD设计理念一般分几层,分别是:

表现层:主要用于与外界的交互,包括UI界面、开放接口等

应用层:面向用例的,复杂服务的编排等

领域层:核心业务逻辑层

基础设施层:用于对外交互,比如数据库、消息、搜索等

 

如下图所示,理论上开发人员应该专注于领域层的设计与开发,只需要实现领域层的逻辑,其他层的代码都应该可以自动生成。

ddd代码java案例_java

 

为了实现这个小目标,调研了业界做得比较好的框架,用得比较广泛的就是MybatisGenerator。故基于该框架实现了一套零编码平台。

 

实现零编码的核心架构

ddd代码java案例_java_02

 

运行之后自动生成核心模块,如下图

ddd代码java案例_人工智能_03

 

使用说明

 一、配置项

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`