一二三应用开发平台——代码生成(1)——整体介绍

概述

当下,低代码与无代码的概念正炙手可热,市面上涌现了众多相关平台。客观而言,低代码开发平台确实通过配置化的方式显著提升了开发效率,降低了成本,并缩短了项目周期。同时,这种开发方式也降低了对开发人员的技能要求,所生成的代码更为标准化,有效减少了低级错误,间接提升了软件质量。

然而,低代码开发并非是一个全新的概念,其历史可追溯至较早时期。在一个软件系统中,许多功能具有共性,这些功能可以通过抽象建模和标准化来简化开发流程。例如,单实体(如计量单位)对应单张数据表,展示和操作方式相对简单;一主多从实体(如销售订单)涉及多张数据表,并需通过关联展示;而树状实体(如组织机构)则形成了自关联的层级结构,需要左树右表的布局设计。

对于这些共性功能的抽象建模和标准化,是实现配置化开发的关键。通过配置数据定义和模板技术,我们可以生成程序源码,这正是代码生成器的基本功能。在应用开发平台中,代码生成器扮演着类似于工业生产中“机床”的角色,能够高效地产出标准化的代码。代码生成器的意义在于将软件系统中大量重复性的开发工作,也就是通常所说的“体力活”,通过简单配置来实现,大幅提升开发效率。

然而,仅有代码生成器是不足以应对复杂业务逻辑和个性化前端页面需求的。这些方面仍然需要专业的开发人员,依托原生开发模式进行深入定制。因此,低代码开发平台的核心虽然是代码生成器的高级形态,但它仍然需要与原生开发相结合,才能充分发挥其优势,实现更为高效、灵活的应用开发。

整体实现

一二三应用开发平台的代码生成功能最早源于MybatisPlus的代码生成器,代码生成基于Freemaker模板技术,后来在其基础上进行了重大重构。

MybatisPlus的代码生成器的实现模式高度依赖于数据库表,也就是说,需要先把库表设计出来并在数据库中创建出来,然后才能基于库表生成代码,并且数据库能承载的信息有限,因此限制和约束比较多。

本平台调整为通过读取实体配置模块的配置信息,来实现代码生成,解除了对数据库的耦合,即使库表尚未创建,也可以直接生成代码,并且可以通过自定义的配置信息来灵活地生成复杂的代码。

代码生成器与实体配置功能密切相关,因此将其放到了实体配置模块,位置如下图所示:

具体实现

首先,自己定义一个服务接口,放两个方法,一是生成代码,二是生成库表,源码如下:

package tech.abc.platform.entityconfig.codegenerator.service;

/**
 * 代码生成服务
 * 代码生成服务接口
 *
 * @author wqliu
 * @date 2022-11-1
 */
public interface CodeGenerateService {
    /**
     * 生成实体代码
     *
     * @param entityCode 实体编码
     */
    void generateCode(String entityCode);

    /**
     * 生成库表
     *
     * @param entityCode 实体代码
     */
    void generateTable(String entityCode);
}

然后定义服务实现类,实现上述两个方法。

public class CodeGenerateServiceImpl implements CodeGenerateService

开发平台资料

平台名称:一二三应用开发平台
简介: 企业级通用低代码应用开发平台,免费全开源可商用
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT

如果您在阅读本文时获得了帮助或受到了启发,我衷心希望您能够喜欢并收藏这篇文章,为它点赞,并在评论区与我分享您的想法和心得。让我们一起交流学习,不断进步,遇见更加优秀的自己!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者无疆1982

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值