手把手教你用最简单的方式开发属于自己的代码生成工具不依赖模板引擎

本文以Java为例,教你如何开发一个不依赖模板引擎的代码生成工具。通过简单的文本模版和Java的字符串替换方法,实现代码的自动化生成,帮助程序员提高效率,减少重复工作。文章详细介绍了需求分析、设计、代码编写和运行效果,适合想要提升工作效率的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

有个玩笑说:“程序员的键盘只要CTL+C和CTL+V就够了”。

可见程序员工作中大部分的是重复的工作,对于重复且有规律的工作任务,我们应该想办法让代码去代替我们做。

一个合格的程序员,应该具备简化自己工作任务的能力,程序员的大部分时间应该是在研究技术提升技术,而不是整天做复制粘贴的码农工作。

今天以Java语言为例手把手教你开发一款属于自己的代码生成工具,实现以代码写代码。

需求分析

  1. 能满足各种需求场景
  2. 添加新需求尽可能操作简单
  3. 不依赖第三方jar包

设计

我们知道一般的代码生成工具都是会定义模版,然后通过模版引擎及上下文变量来生成最终的代码。所以我们的代码生成工具也将采用模版的方式生成代码。

  1. 模版设计
    为了能满足多种需求场景的代码生成,及添加新需求尽可能操作简单,模版采用最简单的文本格式即常用的txt格式,通过添加不同的模版文件来实现增加新的需求

  2. 模版引擎设计
    通过Java中String类的replace和replaceAll方法,实现对模版文件中变量的填充。

代码编写

以复制如下代码用于Role为例,可以看出该业务是对用户表进行分页查询的操作。当业务需求需要增加新的表时,对于新的表也需要分页查询,传统的做法是自己实现这段逻辑,这样使得代码实现样式不统一,同时每次都重新实现增加了更多的人的操作,也是的代码的错误几率增加。更好的方法是复制成熟经过产线验证的代码过来替换其中的参数为新的表即可。而这样的工作交给程序来做非常合适。

/**
 * 列表页面数据
 * @return 数据 JSON
 * @author tech-farmer 2021-11-10 14:51:12
 */
@RequestMapping(value = "/list",method = RequestMethod.POST)
@ResponseBody
public String list(PageDTO pageDTO,@FormModel("condition") User user){
    userService.listForPage(pageDTO,user);
    return JSON.toJSONString(pageDTO);
}
  1. 将成熟的代码片段制成模版文件

在项目templates目录下添加模本文件testTemplate.txt,将上面的成熟代码片段拷贝到模版文件中,使用变量(形如“${var}”)替换代码片段中的参数值即可,文件内容如下:

/**
 * 列表页面数据
 * @return 数据 JSON
 * @author ${author} ${createTime}
 */
@RequestMapping(value = "/list",method = RequestMethod.POST)
@ResponseBody
public String list(PageDTO pageDTO,@FormModel("condition") ${bigEntityName} ${littleEntityName}){
    ${littleEntityName}Service.lis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值