代码自动生成 --- 一切都为了提高您的工作效率,和苦逼码农说NO

举报
华为云社区精选 发表于 2017/10/12 17:00:58 2017/10/12
【摘要】 有没有一个好的idea?将这些简单、重复、枯燥的编码工作一股脑全做了,开发人员把精力集中在复杂的功能逻辑处理上来,从而大大提高开发效率,也避免了犯一些低级的、共性的编码问题

背景:
开发兄弟在开发过程中肯定会遇到这样的场景:
1. 尼玛,这个功能不是和我上次做的A功能差不多嘛;
2. 每次都需要干苦力,最讨厌敲键盘写底层的VO;
3. 简单的CRUD操作,太low level了,敲代码敲的让人累觉不爱咯;
4. 功能雷同,复制粘贴太枯燥了,能不能给点有技术含量的活儿;
。。。。。
那么,问题来了,有没有一个好的idea?将这些简单、重复、枯燥的编码工作一股脑全做了,开发人员把精力集中在复杂的功能逻辑处理上来,从而大大提高开发效率,也避免了犯一些低级的、共性的编码问题
思路:
(以Spring+MyBatis架构为例)
1. 假定每个业务功能模块都需要CRUD操作(通用接口)
2. 每个业务实体都可以抽象成系统实体对象(VO)
3. 每个系统实体对象都会和数据库表有对应关系,或者是一个抽象的实体(无法从数据库关联)
4. 数据库的CRUD操作其实都是类似的,只是针对的数据库表不同列不同而已(mybatis xml,Dao)
5. 基本的增删改查接口和实现类:命名可保持一致性,实现类的逻辑也大部分通用(接口类和实现类)
6. 前端页面上,一般按照系统风格和架构风格上都会保持一致,菜单区、查询区和数据操作区的一致性
7. 前端对业务数据的请求方式在定义上保持一致性
8. 基于以上几点,我们可以抽取共性,转换成设计编码的模板(如:VO对象模板、数据库mybatis操作的xml模板、Dao层接口模板、业务相关的接口类和实现类模板、前端页面模板、等等)
9. 借助freemarker强大的模板功能,将实体对象绑定到模板中,从而生成前后端完整的一套业务逻辑代码
10. 将代码生成的功能以插件的形式提供给IDE,如Eclipse Plugin
11. 借助JAVA JDBC驱动,根据数据库表名获取表结构信息;如果实体不依赖数据库表,则可通过外部文件导入的方式,获取的实体的基础属性信息
12. 利用JAVA Swing 实现可操作性的交互功能界面,一键生成全套代码
技术点:
1. Eclipse插件开发
2. FreeMarker通过ftl模板生成代码文件

---------------------------------

功能升级:

这两天对原有的插件做了次升级,主要源于以下目的:

1. 原插件功能提供的代码模板比较固定,开发人员如果需要修改模板,必须打开插件jar包修改ftl文件;原插件不支持灵活配置模板;

2. 因自身插件开发能力有限,为方便程序的配置功能可扩展,将插件转换成客户端小工具程序;

3. 将所有模板信息通过xml文件进行配置管理(后台自动解析xml配置信息),支持多套模板灵活切换,亦可自定义新增模板,不受程序限制

作者|陈江桥

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至hwclouds.bbs@huawei.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。