`
fang9159
  • 浏览: 48028 次
  • 性别: Icon_minigender_1
  • 来自: 湖北
社区版块
存档分类
最新评论

最近开发了一套代码生成工具。

阅读更多
好久没更新日志了,我最近花了大概一个多月的时间做了个代码生成工具,生成的代码都是和公司的框架相关的,生成相应的后台代码和前台代码和配置文件,目前可以通过数据表和po来生成相应的代码,那么可以生成单表,树型单表,主从表,树型主从表这几种模式。当然它生成的只是这个项目里面最常用的操作,比如新增,修改,删除,导出等等。那么生成的逻辑都是最简单的逻辑,开发人员可以在生成后的基础上,将具体的逻辑判断加进去。生成的界面就是列表页面,新增页面,修改页面,查看页面。当然如果是主从表,那么就会生成从表的维护页面,那么前台页面的基本验证都可以生成好了,比如日期,是否为空,是否是数字等等。


我个人感觉它有以下三个作用。
1.可以提高一定的工作效率,因为可以生成60%-80%的代码,而且有IO处理,是可以直接生成到你指定好的工作目录里面去。开发人员之用将生成的配置文件拷贝到相应的目录即可,那么开发人员可以把更多的精力投入在复杂业务逻辑和技术攻关里面。
2.可以让项目做的更统一,因为生成的后台代码和前台代码是统一的,界面也是统一的,那么项目就是统一的风格,不会出现这个人的界面是一样,其他人又是另一样。
3.可以节约单元测试,系统测试的成本,不用局限于测一些共性,简单的功能。

但是这个生成工具是以一个稳定的开发框架和一套界面标准为基础的。

在下一版本,我将做以下修改。
1.增加xml数据源和json数据源(目前是数据表 或者po)
2.将框架的模板,代码和 业务数据分开。(这是个大的工作量),这样可以适应各个不同的开发框架。
3.加上预览的功能,主要是预览界面的布局。
4.加上高级布局功能,让布局更加灵活。

希望大家对我这个生成工具多多提些建议,我想3月初就在公司里投入使用。
分享到:
评论
15 楼 黑男爵 2008-03-03  
能有个示例或者是说明得更详细一点就更好了。
14 楼 coder1982 2008-03-03  
可以做成 ECLIPSE插件性质,可以更加规范编码模式。
最后能不能形成独立的产品,这个要市场检验,还是建议楼主给个测试
13 楼 zbird 2008-03-03  
代码生成器这东西还是有点用的。
特别是JAVA,官僚化严重,任何一个简单的操作都要涉及到N个类和N个配置文件。
通常各个公司都会有一些自己的开发框架,或者说是开发规范。
这导致代码生成器的通用性比较低。

我整了个springside的代码生成器。
由POJO作为起点生成所有代码,数据库由hibernate自动生成。
通过 注解(也就是@Override这类的东西),为POJO添加一些代码生成器专用参数。
12 楼 抛出异常的爱 2008-03-03  
abcx 写道
如果你在架构设计和编程方面不是很牛,请不要尝试做这样的事,更多的时候你做出来的是垃圾。

牛这个词是贬义.....
能够节约劳动...就是好东西..
垃圾大多是由于懒人不去改进.....
11 楼 abcx 2008-03-03  
如果你在架构设计和编程方面不是很牛,请不要尝试做这样的事,更多的时候你做出来的是垃圾。
10 楼 fang9159 2008-03-03  
jomper 写道
我前一个公司也有一个 CRUD,审批 代码生成工具,是用于struts hibernate上的.
bo、po、dao、action、bizbean、jsp、所有的xml配置文件全部生成。
后来又有了一个 根据所见即所得的工作流设计器 也是全部到位。
针对行业的某一阶段产品还可以应付,但是完全没有推广的价值。

我看到过的代码生成工具给我的感觉 就是越抽象越没有用,越细致越局限。

那你们的生成工具应该是和具体的产品所用的技术框架耦合太大了,对吗?
是不是换了一个技术框架,就不能用了???
9 楼 jomper 2008-03-03  
我前一个公司也有一个 CRUD,审批 代码生成工具,是用于struts hibernate上的.
bo、po、dao、action、bizbean、jsp、所有的xml配置文件全部生成。
后来又有了一个 根据所见即所得的工作流设计器 也是全部到位。
针对行业的某一阶段产品还可以应付,但是完全没有推广的价值。

我看到过的代码生成工具给我的感觉 就是越抽象越没有用,越细致越局限。
8 楼 fang9159 2008-03-02  
Godlikeme 写道
确实,让我看了更糊涂了,主要是我觉得后面的说法和刚开始不太一致,大道理说多了没用,那个例子出来瞧瞧。

呵呵,可能是我开始没说清楚!!!明天去公司后,我会给出个例子。
7 楼 Godlikeme 2008-03-02  
确实,让我看了更糊涂了,主要是我觉得后面的说法和刚开始不太一致,大道理说多了没用,那个例子出来瞧瞧。
6 楼 fang9159 2008-03-02  
to jerry_shen:
  谢谢你的加油,也希望你能将你的一些好的思想同我多交流交流
5 楼 fang9159 2008-03-02  
Godlikeme 写道
真的有着么好么?
真的能节省这么多工作么?
只怕是一个更深的坑。。。

绝大部分代码生成工作可以由,eclipse和UE搞定,一小部分因为不是那么通用需要自己写点脚本处理。

至于增删改查这些到底使用代码生成好还是元数据描述本身还是个问题。
他们都有同样面对的问题:
生成代码的工作这样的工作一定是简单的、可重复的、边边角角。
在一个系统中这样部分地工作是相对少量,
这种思路都倾向过早的抽象通用性,往往让系统变得僵化,难以理解、难以修改、难以维护。

不是有意打击lz的积极性,提供点建议。

to Godlikeme
这个生成工具所生成的代码是依赖于你本身所要用的框架的,所以它生成的都是适用于你框架的所有的东西,所以它与你系统的维护这些方面没有任何关系,如果你的系统难以维护,难以修改,难以理解,那么是你的框架难以维护,难以理解,难以修改,它生成的都是你框架里面所要求的共性代码。

也许上面那样说太抽象,比如你的框架里面对控制层,服务层,数据访问层都做了一些基本类。比如 BaseAction , BaseService , BaseDAO,这些类都已经包含了常用的增删改查等等,也就是包含了你具体系统中的一些常用操作。
那么生成的代码可能会是 TestAction extends BaseAction , TestService extends BaseService ,TestDAO extends BaseDAO .等等。
我想说的意思是生成工具生成的一切代码都是依赖于你自己的开发框架和页面标准,
至于这个代码的定制也是你自己可以控制的。包括后台代码,前台代码都是你自己定制的。

当然非常感谢你的建议。不知道我上面的解释是否可以让你更加理解这个生成工具。
4 楼 Godlikeme 2008-03-01  
真的有着么好么?
真的能节省这么多工作么?
只怕是一个更深的坑。。。

绝大部分代码生成工作可以由,eclipse和UE搞定,一小部分因为不是那么通用需要自己写点脚本处理。

至于增删改查这些到底使用代码生成好还是元数据描述本身还是个问题。
他们都有同样面对的问题:
生成代码的工作这样的工作一定是简单的、可重复的、边边角角。
在一个系统中这样部分地工作是相对少量,
这种思路都倾向过早的抽象通用性,往往让系统变得僵化,难以理解、难以修改、难以维护。

不是有意打击lz的积极性,提供点建议。
3 楼 jerry_shen 2008-03-01  
楼主加油,我对code generator也挺感兴趣,希望早日看到楼主的杰作。
2 楼 fang9159 2008-03-01  
开源是一个比较好的做法,我明天想发一些图片上来,把一些人机操作界面发给大家看一看
当然希望大家能提供好的思想和建议,我下个目标,就是把这个做成一个适应于各个java应用的(当然是做bs系统)的一个产品
也许,我的想法比较幼稚,所以想听听大家的建议
1 楼 gaoyaodi 2008-03-01  
应该开源,公众测试

相关推荐

    一套Vue代码五端可用H5小程序PC苹果App安卓App使用mpvue实现小程序weex打包APP

    4. **Weex**: Weex 是阿里巴巴开源的一个跨平台UI框架,它可以让开发者用一套代码实现原生移动应用、Web应用和H5应用。Weex 支持Vue.js语法,可以方便地将Vue.js项目转换为iOS和Android原生应用。 5. **跨平台开发*...

    cdst ssh代码生成器,是有我爱神州大地网站开发的一套以web平台的,免费的,功能强悍的struts2+spring2.5+hibernate3.2的一套 代码生成系统。

    CDST SSH代码生成器是基于Web的开源工具,由我爱神州大地网站设计并开发,其主要目的是为了提高开发效率,减少重复性编码工作。这个系统利用了强大的MVC框架Struts2、依赖注入框架Spring2.5以及对象关系映射工具...

    基于mybatisplus的在线代码生成工具

    而基于MybatisPlus的在线代码生成工具,则是进一步提升了开发体验,帮助开发者快速生成项目所需的Java实体类、Mapper接口、Mapper XML 文件以及Service与Controller层代码。 **核心特性** 1. **内存数据库存储**: ...

    MFC代码生成工具MFC代码生成工具MFC代码生成工具

    MFC代码生成工具则是为了帮助开发者快速构建基于MFC的应用程序,减少手动编写重复性代码的时间,提高开发效率。 MFC本身是建立在Win32 API之上的,它将复杂的Win32 API封装成了一组类,使得开发者可以使用面向对象...

    代码生成工具设计(草案)

    5. **集成能力**:理想的代码生成工具应能无缝集成到开发环境(IDE)中,例如,提供插件形式的支持,使开发者在编写代码的过程中可以方便地调用生成功能。 6. **版本控制**:生成的代码通常需要纳入版本控制系统,...

    代码生成工具

    代码生成工具是软件开发过程中非常重要的辅助工具,尤其在Java开发领域中,它们可以极大地提高开发效率,减少重复劳动。本文将深入探讨代码生成工具及其在Java编程中的应用。 首先,我们来理解什么是代码生成工具。...

    java代码自动生成工具

    通过代码生成工具,可以自动化创建Controller、Service、DAO、Model等类,以及相应的接口和实现,大大减轻了开发工作量。 Java代码自动生成工具的核心功能包括: 1. **模板引擎**:这些工具通常配备了一套强大的...

    jpa代码自动生成工具-springboot

    本文将深入探讨如何使用JPA和Spring Boot结合,实现代码自动生成工具,提高开发效率。 首先,让我们了解JPA。JPA通过提供一套标准API,使得开发者无需关注底层SQL语句,而是通过定义实体类、注解以及Repository接口...

    webservice接口代码生成工具

    总之,"webservice接口代码生成工具"简化了Web Service客户端的开发,使得开发者能够快速地与远程服务进行交互,而不必关心底层的通信细节。通过理解和利用这样的工具,可以提高开发效率,同时确保与Web Service的...

    飞思卡尔 的osek代码生成工具

    飞思卡尔的OSEK代码生成工具是专为开发人员设计的,目的是简化基于OSEK规范的嵌入式软件开发过程。这个工具能够帮助开发者自动生成符合OSEK标准的源代码,包括任务调度、中断处理、通信机制等方面,从而提高开发效率...

    一套基于模版的代码生成器

    【标题】:“基于模板的代码生成器”是一种实用的开发工具,它允许开发者通过定义模板文件来自动化地创建各种编程语言的源代码。这种工具在软件工程中扮演着重要角色,尤其是在大型项目或需要大量重复代码的情况下,...

    C#.Net实体代码生成工具 v3.0 (20090830最新版)

    C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为 C#.Net 数据库程序员开发量身定做的自动代码生成工具,所生成的代码基于面向对象的思想、分层架构设计及ORM,并参考了微软Petshop中经典的思想,...

    freemaker代码生成工具

    总的来说,Freemarker代码生成工具通过模板化的方式,为Java开发带来了极大的便利,降低了开发成本,提高了代码的规范性和一致性。对于大型项目或团队开发来说,这样的自动化工具是不可或缺的,它可以确保代码质量并...

    mybatis 代码生成工具

    MyBatis 代码生成工具是开发过程中非常实用的辅助软件,它可以显著提高开发效率,减少重复劳动,使得开发者能够更专注于业务逻辑的实现。MyBatis 提供的代码生成器可以根据数据库表结构自动生成对应的 Java 模型类、...

    code-gen代码生成工具 v2.0.0.zip

    "code-gen代码生成工具 v2.0.0.zip" 是一个专用于自动化代码生成的工具,主要用于提升开发效率,减少重复编码工作。该版本为2.0.0,可能包含了新特性和性能优化。在软件工程领域,代码生成工具是开发者们常用的辅助...

    JAVA代码生成工具.rar

    总的来说,"JAVA代码生成工具.rar"可能包含了一款或一套这样的工具,它将帮助Java开发者更加高效、规范地进行编码,提升整体项目的质量和开发效率。如果你正在寻找提高开发效率的方法,了解并合理使用代码生成工具是...

    mybatis自动代码生成工具(映射mysql,oracle)

    MyBatis 自动代码生成工具是一款高效且便捷的开发辅助软件,它可以帮助开发者快速生成 MyBatis 的 Mapper 文件、实体类、DAO 接口及其实现类等代码,极大地提高了开发效率,尤其在处理大量的数据库表结构时。...

    代码生成工具easycode

    【代码生成工具EasyCode】是一种高效实用的软件开发辅助工具,专为程序员设计,旨在减少重复的手动编码工作,提高开发效率。通过自动化的方式,它能够根据预设的模板或模型自动生成符合特定规范的代码,包括但不限于...

    java代码生成工具

    Java代码生成工具是一种提高开发效率的重要辅助软件,它能够自动生成符合特定规范或模式的Java源代码,大大减轻了程序员的编码负担。这些工具通常基于模板或者元数据,通过解析数据库结构、ORM映射或其他配置文件,...

Global site tag (gtag.js) - Google Analytics