深入浅出教你做一个快速开发平台
?
快速开发平台,重点在于快,要快无非就是两种手段:
1、生成代码
2、重用模块
?
详细看如下的分支图
?
要实现这样一个编辑器,有很多技术可以实现:flex、gef、gmf等,或者你自己写个swing拖拽器也可以。。
?
在编辑器里面用模型描绘完这个请求处理过程后,怎样生成代码?
生成代码比较简单,过程其实上和生成CRUD是一样的,都是读取某些信息,然后使用模板引擎freemarker或者其他的,然后套用到某个模板上面,即可生成对应的代码了。
?
但这里得注意,模板?那这个模板应该怎样写呢?
和我们写普通模板一样,先是写可以跑通的程序,然后把非公用的属性挖走,就是模板了,
例如,CRUD的模板,我们是从CRUD程序里面挖走 哪个表,什么字段这些,当然有时候是必须加些判断来控制代码的生成。
?
这个请求过程的模板,也是如此,先按 模型思想,就是 “接受参数”模型、“执行逻辑”模型、“JSP”模型,写出程序来,跑通后,
再把非公用的东西挖走,例如,接受什么参数啊,执行什么方法啊,转向什么页面啊等挖走,就成了模板了。
?
实际上要让快速开发平台能生成 非规则的源码,重点是在于,对请求处理过程的模型抽取,每个公司都有自己的抽取方式,就例如上面的案例,但始终都离不开 “合理的模型能组合成为一个完成的请求处理过程” 的原则。
?
上面的 登陆过程图实际上是最简单的一种请求处理过程抽取。
你在开发项目的时候,往往会需要返回ajax,,那就多加一个ajax模型吧,,可以!
有时,可能是你底层的方法库是没有的,那需要自己手动写一个方法,,然后这个方法我要嵌入到这个请求处理图中去,,那就多加一个自定义方法的模型吧,,可以!
。。。其他情况,依然这样处理。
?
事实上,要抽签合适的模型需要一个循序渐进的过程,但可以参考一些现有的开发平台,他们已经抽取好了,然后根据他们的模型,按照自己的思维、技能进行调整,得到自己想要的模型集。
模型的抽取是按照每个人的思维方式不同而不同,因人而异,没有标准化。
?
当然你也可以利用这种生成非规范代码的思想来开发工作流程序,也可以用来开发工控的一些图形化编程工具,或者是电信行业的ivr程序都可以。
小结一下:
要生成非规则性的代码,处理过程无非就是,先写一个可以跑通的程序,然后在这个程序里面把异性的元素抽取出来,变成模型(可以理解为一个变量),然后生成代码的适合,就是将这个变量赋值,
再和原来被抽取的程序段结合,即可。
关键的地方是在应该怎样抽取异性元素才是更适合,另外,一个关键点是抽查出来的异性元素(模型)怎样赋值的问题,这需要一个工具,才能更好的把赋值和生成代码集合起来。
?
后话:
当然在快速开发平台中,生成代码,不管是规则或者非规则,都只是部分功能而已,还有其他很多功能,所以,我个人感觉快速开发平台最好能依赖eclipse体系而已建立,以达到重用eclipse系统本身某部分功能的目的,从而减少开发量。