`
badqiu
  • 浏览: 673906 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

为何代码生成器都要这么智能呢?

阅读更多
现在的代码生成器生成的代码文件都会自动插出在我们的项目中,为何不提供一个将生成的文件生成在硬盘某个目录下,再由我们手工copy回来工作区?

这样可以避免开发人员需要考虑文件会不会被覆盖的问题.并且手工的动作很快,也不容易出错.

本人编写了的一个基于数据库的代码生成器,就是要解决上面提到的问题,可以生成Hibernate Model,Dao,Manager,Struts/Struts2 Action,JSP页面(增删改查及列表页面,表单验证),以下为代码生成器相关特性
  • 以application方式运行生成器,代码即是配置.
  • 将文件系统的目录名称及文件名称作为生成器的一部分,模板文件的的名称与目录名称可以直接引用相关变量,如${basepackage}/${className}.java (${className}=Blog,则会生成Blog.java)
  • 以@testExpression结尾的模板文件为有条件忽略,如果testExpression的值在数据模型为true则生成该文件,生成的文件不会包含@testExpression,反之则不生成该文件(应用场景:用于在是否要生成hibernate联合主建的文件中)
  • 支持文件插入操作,如模板输出生成的地方已经有该同名的文件存在,并且文件中有包含"webapp-generator-insert-location"标记,则模板生成的内容会插入在该标记之后该特性对如生成的spring配置内容插入spring配置文件十分有用


生成器入口
	public static void main(String[] args) throws Exception {
		Generator g = new Generator();
		
		g.clean();
		g.generateTable("blog");
//		g.generateAllTable();
	}


这里是上一篇[搞不明白],被移至入门区了
[搞不明白]直接在Action中返回forward不好么

搞完了[搞不明白],会发布一个应用开发框架,提供类似rails的基于url确定action访问的零配置快速编程,自带一个代码生成器,已经完成的组合基于struts+spring+hibernate,struts2+spring+hibernate.

  • 描述: 代码template目录结构
  • 大小: 18.2 KB
分享到:
评论
33 楼 王国平 2008-11-06  
请问代码规范器和代码生成器大部门是不是一样的?
代码 规范器的代码如下:
一、 代码规范器功能简介
代码规范器根据统一的配置文件,对指定的程序文件进行规范化调整。
配置文件体现了代码规范器的功能,描述了需要对程序文件进行何种统一规范化操作。由于配置文件是统一的,而程序文件却是不确定的,因此不需要把被规范化的程序文件标识放在配置文件中。
随着代码规范器功能的完善,配置文件也将随之更改其格式与填写规范。因此,配置文件应有版本号,以识别其不同的格式与填写规范。
配置文件的形式,可以是XML文件、纯文本文件、数据库等各种形式。但为了扩展性和小巧易用性,建议采用XML文件。配置文件的文件名由代码规范器的设计人员确定,固定不可变更。代码规范器中有且只有一个配置文件。
程序文件类型:JAVA源程序、目标程序。
规范化调整操作分为两类:
 正调整
根据配置文件的设置,在程序文件中的指定位置增加指定的内容。如果程序文件中的指定位置已经有指定的内容,代码规范器不再做增加动作。
 反调整
根据配置文件的设置,在程序文件中的指定位置删除指定的内容。如果程序文件中的指定位置没有指定的内容,代码规范器不再做删除动作。
二、 代码规范器0.1版功能清单
 增加类属性
在程序文件类内增加新的属性。
例如:
程序文件原来面貌:
public class DBCon {
private ResultSet rs;
……
}
增加后的程序文件:
public class DBCon {
private Connection con;
private ResultSet rs;
……
}
 增加类方法及代码
在程序文件类中增加新方法及代码。
例如:
程序文件原来面貌:
public class DBCon {
private ResultSet rs;
……
}
增加后的程序文件:
public class DBCon {
private ResultSet rs;
public DBCon() throws Exception {
connection();
}
……
}
 在类方法内指定位置增加代码
在程序文件类中指定的方法内的指定位置,增加代码。
在方法内的指定位置,分为两种:方法内的最前部和最后部。
三、 代码规范器使用方法
代码规范器的使用方法有两种:
 命令行方式
格式:代码规范器 程序文件 调整操作分类
其中,调整操作分类  “+”表示正调整
“-”表示负调整
例如,代码规范器的文件名为BUILD.EXE,程序文件的文件名TEST.JAVA,准备进行正调整,则命令行执行方式为:“BUILD TEST.JAVA +”。
 接口调用方式
接口调用方式是提供给应用程序调用的方式。应用程序通过实例化代码规范器封装好的一个类,然后调用其中的指定方法,将需要进行调整的程序文件文件名和调整操作分类传递给该方法,实现对程序文件的调整。
四、 要求
编写、提交设计文档、源代码、目标代码。另需附一个通过接口调用方式的例子代码。
32 楼 sevenhighness 2008-09-03  
貌似大部分的代码生成都局限于功能性的生成而已
31 楼 超级潜水员 2008-09-02  
你的rpaid-framework很好用,谢谢楼主了.
30 楼 farryu 2008-09-02  
bruce_luo 写道
不错,我以前也写过一个代码生成器,但是我们老大说,你这一搞,其它程序员就要失业了,我就没有继续搞下去了!

我代表我自己以及我身后千千万万个同行向你致谢了!
29 楼 thc 2008-09-01  
superxielei 写道
说了这么多.我还是希望能看一看这个代码生成器...
现在公司都是用自己封装的框架.这些代码生成器还有作用吗?

那正是代码生成器的市场所在 ,哈哈
28 楼 bubble 2008-08-01  
呵呵,像你说的那样,何必用java能,直接用js就搞定了
27 楼 系统程序 2008-07-17  
bruce_luo 写道
不错,我以前也写过一个代码生成器,但是我们老大说,你这一搞,其它程序员就要失业了,我就没有继续搞下去了!


联合国秘书长应该来感谢你啊,不是你做出的伟大的牺牲的话,全球的失业率不知又要增加多少
26 楼 vangelee 2008-07-17  
我晕,你放心不会失业的。可以看一下Grails。感觉会让你大吃一惊的!
25 楼 zfyyfz 2008-07-16  
别这么牛啥,即使你发明一种语言,大多程序员也不会失业!
24 楼 liping 2008-07-16  
我想看看你这个个代码生成器!即使失业也乐意啊!
23 楼 runthu 2008-07-15  
程序员太累,应该偷偷懒!
22 楼 sunwine 2008-07-15  
我到不怕代码生成器,因为我们做开发都不写代码。
21 楼 dfedora 2008-07-15  
都用了好久的。好的代码生成器可以生成很多语言的代码。无非就是模版的选择而已。CRUD操作可以直接用生成器搞定。
20 楼 soleghost 2008-07-15  
在公司实习的时候就发现,对于一个没有任何业务逻辑的model
从查插删改的页面-->对应的action-->manager及其实现-->dao及其实现-->model及其hibernate的xml配置文件,开发的大部分工作都是copy/paste,然后更改变量名,其实大部分都是没有任何技术和业务意义的,写一个针对公司技术框架的代码生成器,可以提高程序员的开发效率,对于公司挺好的
19 楼 runthu 2008-07-15  
搞过SSH的CRUD代码生成,静态编码表的操作效率是高多了,但复杂的业务逻辑还得慢慢去实现。

cuckoo framework也支持CRUD代码的自动生成。
18 楼 simplechinese 2008-07-15  
能不能把这个帖也移到入门区...
17 楼 gladstone 2008-07-15  
bruce_luo 写道
不错,我以前也写过一个代码生成器,但是我们老大说,你这一搞,其它程序员就要失业了,我就没有继续搞下去了!



失什么失,地球不留人,火星还去不得咩
16 楼 pony0728 2008-07-15  
可以把客户化的代码放到扩展目录。最后发布的时候去覆盖下。。
15 楼 suntiance 2008-07-14  
我也有过开发代码生成器的经验,暂时能想到下面这些。
问题
   1、对于业务复杂的模块,代码生成器并不能显著提高效率。
    2、对于熟练的程序员,代码生成器有点累赘。
    3、开发一个优秀的代码生成器也是需要成本的。

优点
   1、简单模块快速开发。
   2、来自同一个生成器的代码比较规范,易读性强。

  
14 楼 xfan1982 2008-07-14  
fmpp+freemarker很容易做

相关推荐

    CALL代码生成器 CALL代码生成器 CALL代码生成器

    CALL代码生成器是一款专为程序员和开发者设计的实用工具,主要用于自动生成特定的CALL代码,以提高编程效率和代码质量。在编程过程中,CALL代码通常指的是调用其他函数或子程序的指令,它在各种编程语言中都有所应用...

    动软代码生成器工具2023

    动软代码生成器是一款完全自主知识产权研发的为软件项目开发设计的自动代码生成器,也是一个软件项目智能开发平台,它可以生成基于面向对象的思想和三层架构设计的代码,结合了软件开发中经典的思想和设计模式,融入...

    DELPHI代码生成器

    3. **智能感知**:高级的代码生成器可能具备智能感知功能,能够分析现有代码并生成相关的辅助代码,如事件处理函数、属性访问器等。 4. **集成到IDE**:Delphi代码生成器通常会整合到Delphi的IDE中,提供快捷方式...

    动软代码生成器2.78(修复生成MySQL表代码没有注释),解压可用版

    动软代码生成器2.78版本,正是这样一款专为程序员量身定制的神器,尤其在修复了生成MySQL表代码缺乏注释的问题后,它更显得实用且高效。 动软代码生成器,顾名思义,是动软公司推出的一款自动化代码生成工具,旨在...

    51单片机智能代码生成工具

    51单片机智能代码生成工具,帮你快速生成所需代码。初学者必备工具。

    C#源代码生成器

    随着软件工程的发展,源代码生成器将更加智能化,结合AI技术进行代码预测和生成,甚至可能实现自动生成复杂的业务逻辑。同时,云服务和持续集成/持续部署(CI/CD)环境也将进一步推动代码生成工具的普及和优化。 ...

    OpenUI-AI代码生成器

    OpenUI是一款开源的AI代码生成器,根据描述生成UI界面,并能够输出HTML、CSS等前端代码,支持React、Svelte等框架,简化前端开发流程,通过生成式AI降低前端开发...是一款非常好用的ui代码生成器。特别适合前端开发人员

    动软代码生成器

    "动软代码生成器"是一款高效实用的软件开发工具,专为程序员和开发团队设计,旨在简化和自动化代码编写过程,提高开发效率。这款工具能够根据用户定义的模板和业务模型,自动生成符合规范的源代码,覆盖了常见的编程...

    懒人C51代码生成器

    【懒人C51代码生成器】是一款专为懒人和初学者设计的软件工具,旨在简化C51编程过程,让单片机开发变得更加轻松。C51是Microchip公司针对8051系列单片机推出的一种高级语言,它以C语言为基础,加入了针对8051硬件...

    动软代码生成器2.78 最新+教程

    动软代码生成器2.78正是这样一款高效实用的工具,专为.NET平台设计,旨在帮助开发者快速生成高质量的源代码。 动软代码生成器2.78作为该系列的最新版本,具有以下显著特点: 1. **智能模板引擎**:该版本的代码...

    C# .Net代码生成器

    9.Net代码生成器Codematic 是一款为C#数据库程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。...

    简单代码生成器

    首先,让我们了解一下什么是代码生成器。代码生成器是一种自动化工具,它可以分析输入的模板或者设计模式,然后根据这些信息生成源代码。这种工具在软件工程中广泛应用,因为它能够减少重复劳动,提高代码质量和一致...

    狼奔代码生成器

    "狼奔代码生成器"是一款高效实用的快速开发框架,专为MVC(Model-View-Controller)架构设计,极大地提升了开发效率。在信息化项目中,开发者常常面临大量的重复编码工作,而这款工具则能够自动根据数据库模型或其他...

    代码生成器

    值得注意的是,尽管代码生成器能带来显著的效率提升,但并非所有场景都适用。对于高度定制化或需要复杂业务逻辑的代码部分,仍需要开发者手工编写。此外,生成的代码可能需要进一步调整以满足特定项目的编码风格和...

    黑马代码生成器HeimaCodeUtil_V2.4

    《黑马代码生成器HeimaCodeUtil_V2.4:提升开发效率的秘密武器》 在软件开发过程中,重复的编码工作往往占据了开发者大量的时间。为了提高效率,许多工具应运而生,其中“黑马代码生成器HeimaCodeUtil_V2.4”就是一...

    单片机 绿色点阵代码生成器

    单片机绿色点阵代码生成器是一款非常实用的工具,专为进行单片机开发的工程师设计。在单片机编程中,特别是在显示模块的开发中,点阵代码的生成是一项重要的工作。点阵通常用于控制LED显示屏或者点阵液晶显示器,...

Global site tag (gtag.js) - Google Analytics