ToB企服应用市场:ToB评测及商务社交产业平台

标题: code-generate(一个通用的代码生成工具)开源项目介绍 [打印本页]

作者: 千千梦丶琪    时间: 2024-12-22 09:02
标题: code-generate(一个通用的代码生成工具)开源项目介绍
code-generate是一个通用的代码生成工具,支持从各种元数据,通过定义模板生成必要的代码,减少低级重复的编码工作。目前支持通过数据库元数据生成业务对象、数据访问对象等。
项目地址

gitee:  https://gitee.com/wei772/code-generate
github: https://github.com/wei772/code-generate
使用方法


编写实体定义Json,参考definition.json
运行jar包
Windows下发起使用Cmd,PowerShell下面脚本运行有问题
  1. java -jar code-generate.jar -Dtemplate.repository=entityDemo -Dgenerate.output=D:\source\code-generate\src\test\resources\generateResult -Dgenerate.basePackage=cn.cli -Dgenerate.author=liwei -Dgenerate.tags=mysql,jdbc -Dentity.reader=jsonFile -Dentity.reader.json.file=D:\source\code-generate\target\test-classes\entityGenerate\userDefinition.json
复制代码
使用设置文件运行jar包
  1. java -jar code-generate.jar "-c=D:\source\code-generate\target\test-classes\config\json.properties"
复制代码
创建数据库和表
运行jar包
  1. java  -jar code-generate.jar -Dtemplate.repository=entityDemo  -Dgenerate.output=D:\source\code-generate\src\test\resources\generateResult  -Dgenerate.basePackage=cn.cli.jdbc  -Dentity.reader=jdbc  -Dentity.names=user  -Dentity.reader.jdbc.url=jdbc:mysql://localhost:3306/code_generate  -Dentity.reader.jdbc.user=root  -Dentity.reader.jdbc.password=123456
复制代码
代码生成的优缺点

代码生成的最大优点就是减少低级重复的编码工作。
但是也有不少缺点。
代码生成工具必要慎用,尽可能优化架构与设计,实在没办法避免的重复劳动才考虑使用。
测试驱动开发

本项目使用测试驱动开发的方法开发
效果与感受

流畅的组织所有开发活动的技术

测试驱动开发这种先写测试再开发的方式很流畅。
自底向上

本项目中体会到测试驱动开发是一种自底向上的设计和开发方式,从明确和渺小的方向开始一直到最复杂的问题,直到完成终极目标。
遇到新的并且复杂的事变,确实很难一下自顶向下给出比力完善设计方案,自底向上提供了一种一步一步办理部分问题,不停集成终极办理所有问题的方式。
依次在各个层次编码、设计、测试

测试驱动开发可以或许对一个概念在各个层级上都很好的测试、编码和设计,保证每个层次都最得当自己。例如targetLanguage就是从EntityType到Property以及Entity最后的CodeGenerate
从最高层到最低层测试。一旦那一层出现问题,只要看哪些测试用例异常都可以分析出哪里出问题,如果高层没有问题,那么问题就是最底层没有传好值,大概改动高层的值导致的。
然后targetLanguage相干设计,就有了Entity更新targetLanguage,PropertyType也会更新targetLanguage的实现,这能大大降级了调试时间
单元测试的代码代码量

单元测试的代码与实现的代码量差不多,某次统计代码行,实现 1714、单元测试 1400 (使用 IDEA Statistic插件统计)。
看起来增长了工作量,现实上却不是。减少了调试的时间,而且代码更加简洁,也是重构的基础,极大了减少了bug量。大大减少了开发和维护成本
测试驱动开发本质

下面一些经典数据的一些论述,涉及到测试驱动开发本质
《测试驱动开发 (Kent Beck) 》当中有几段话让我印象深刻,体现了这种方法的核心作用
《敏捷整洁之道:回归本源》关于复式记账的论述
步调

起首编写任务清单,一样平常包罗设计想法、要实现用例、重构任务等等,将TODO的事变要一个简朴的文档记载,整个过程比力随意,有价值的想法就记载下来,完成之后将对应的任务划上删除线。
然后是具体编写过程
每次写代码都重复这3个步调,直到没有必要完成的任务。
包结构和主要类介绍

entity包

主要包罗实体定义相干类 Entity、Property和EntityType。
entity.reader包

实体代码生成读取实体设置
目前支持的设置范例
template包

对应模板引擎和模板实例
目前支持的模板引擎有
param包

支持从设置文件中读取参数
generate包

代码生成核心类

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4