代码生成器:提升程序员的生产力 | 码云周刊第 27 期

代码生成器:提升程序员的生产力

码云项目推荐

1 基于代码生成器的 J2EE 快速开发平台 jeecg

项目简介:JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。引领新的开发模式( Online Coding -> 代码生成器 -> 手工 MERGE 智能开发),可以帮助解决 Java 项目 60% 的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。

JEECG 宗旨是:

简单功能由代 Online Coding 配置出功能;

  • 复杂功能由代码生成器生成进行手工Merge;
  • 复杂流程业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,供开发编写业务逻辑。

实现了流程任务节点和任务接口的灵活配置,既保证了公司流程的保密行,又减少了开发人员的工作量。

JEECG从V_3.6.3版本开始,采用插件开发模式,JEECG 走简化轻量级路线,后续升级和功能模块,采用插件开发模式,进行集成。

项目地址:

https://gitee.com/jeecg/jeecg

2 轻量级的代码生成器内核 JCOP

项目简介:定制属于自己的 Java 代码生成器(当然其他语言也可以),从 JFinal-Code-Online Platform( JCOP )开始。JCOP 是一个基于 Java,JFinal 开发的轻量级代码生成器内核,是一个标准 java web 项目,使用时不依赖任何 IDE,其核心设计目标是学习简单,扩展自由可加入一切自己想生成的文件的模板,绝对的灵活自由。它可用任何模板引擎生成一切代码,目前默认提供 Java 代码生成器,支持 JFinal Web 风格项目,不久将加入传统的 SSH 项目生成。

项目特性:

  • 基于业务模型快速生成,大大提高开发速度。
  • 不引入新的规范新的技术,和已有的开发模式相同,是已有开发模式的补充。
  • 生成的源代码和生成器模板,均可自由修改,并能很容易的加入新的模板
  • 基础框架可按照已有的技术框架任意组合,不会将用户绑到特定的框架.
  • 容易上手,无论是学习还是作用项目开发,平台容易掌握,学习曲线低。

项目地址:

https://gitee.com/zhouleib1412/jfinal-code-online

3 基于数据库物理模型的代码生成器 CodeBuilder

项目简介:CodeBuilder(English) 是一款简单易用且轻量级的基于数据库物理模型的代码(C#/java/ruby/php/xml等)生成工具。

项目特性:

  • 支持从 PowderDesigner12 + 文件(PDM)/ SQLserver2000/2005/2008/Oralce/Mysql5 中导入数据库表结构。
  • 利用 velocity 模板引擎生成代码。

项目地址:

https://gitee.com/xianrendzw/CodeBuilder

4 基于 mybatisplus 的 web 代码生成工具

项目简介:该项目是基于 mybatispluls 的代码工具编写,同公司人员无需在本机运行 main 方法,可以方便统一使用该 web 项目。漂亮的登录页面(amaze云适配)运行无需任何数据库链接,数据源配置记录在属性文件中,项目重启也不会丢失。

项目地址:

https://gitee.com/cooper.com.cn/mybatisplus-generator-web

5 基于数据库元数据模型的代码生成器 Codgen

项目简介:Codgen 是一个基于数据库元数据模型,使用 freemarker 模板引擎来构建输出的代码生成器。freemarker 的数据模型结构通常来说都是一个 Map 树状结构模型,codgen 也不例外,它的数据模型这棵树的根节点一般包含一个 TableModel(表数据模型)对象。TableModel 顾名思义就是由一张数据库表的元数据信息组成的一个数据模型,有了这个数据模型,再加上一套使用 freemarker 编写的多层架构模板,就可以生成一套基于这个表的多层架构代码文件。

项目特性:

  • 采用 freemarker 的构建公式:数据模型+模板=输出,默认使用 freeMarker 模板引擎来生成代码,但可以通过 Builder 接口实现其他构建方式。
  • 核心数据模型 TableModel 基于 JDBC 实现表元数据及其所有字段列的相关元数据信息的封装。
  • 数据模型 TableModel 基于 JDBC 实现,可以取得大部分元数据信息,个别信息的取得与具体数据库方言有关,可以通过扩展 DbProvider 来实现。
  • 通过实现接口 ColumnHandler,可以完成 JDBC 数据类型到各种编程语言的类型转换操作及更多复杂的操作,如处理 Oracle 的大写列名以增强列名称的可读性。
  • 通过配置可以动态增加或重定义数据模型,并可以被后面的数据模型通过模板语言引用或组装。
  • 构建时指定的模板可以是一段文本字符串,也可以是一个文件路径,并且它们的内容里都可以引用已定义的数据模型。
  • 构建时指定的输出类型可以是文本,也可以是文件,指定的文件输出路径也可以引用数据模型变量。
  • 项目配置引入继承机制,这样就可以重用在父类配置中已定义的数据模型及其他配置信息。
  • 项目配置信息可以分开多个配置文件存放,codgen 一次性加载并缓存起来以加速之后的访问。

项目地址:

https://gitee.com/htengen/codgen

原文发布于微信公众号 - 码云Gitee(mayunOSC)

原文发表时间:2017-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

android个推平台

最近有个朋友想要推送一些消息到自己的APP上,自己用了HTTP轮询的方式比较耗电,也比较占用流量,一旦用户关闭了进程,消息则很难触达,于是,咨询我有没有什么好的...

23460
来自专栏数据和云

演讲实录:MySQL 8.0 中的复制技术

在近期的第七届数据技术嘉年华上,甲骨文MySQL研发工程师宋利兵做了“MySQL-8.0中的复制技术”为主题的演讲,介绍了MySQL-8.0中异步复制和Grou...

36950
来自专栏smartguys

(四):C++分布式实时应用框架——状态中心模块

  版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!

22750
来自专栏散尽浮华

zabbix监控-基本原理介绍

一、Linux下开源监控系统简单介绍 1)cacti:存储数据能力强,报警性能差 2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的...

79290
来自专栏张善友的专栏

SQL Server 2008基于策略的管理

基于策略的管理(Policy Based Management),使DBA们可以制定管理策略,并将这些策略应用到服务器、数据库以及数据环境中的其他对象上去。经过...

23290
来自专栏java一日一条

如何通过编程发现Java死锁

死锁是指,两个或多个动作一直在等待其他动作完成而使得所有动作都始终处在阻塞的状态。想要在开发阶段检测到死锁是非常困难的,而想要解除死锁往往需要重新启动程序。更糟...

16410
来自专栏Spark学习技巧

调试flink源码

本文主要是讲讲flink的源码编译,案例运行,flink源码调试过程。调试flink的源码及案例,需要先clone工程,编一下源码,去掉规范检查,修改工程,最后...

65950
来自专栏木子墨的前端日常

本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案

因为要更新数据库加个表,远程桌面又无法连接。。。所以就远程到另外一台电脑,然后用navicat通过内网修改目标数据库。

16130
来自专栏Rainbond开源「容器云平台」

好雨云帮近期问答集锦(1.16 - 2.5)

12730
来自专栏资深Tester

你会搭建测试环境吗?

5K50

扫码关注云+社区

领取腾讯云代金券