大概有过开发企业应用经验的童鞋都会有种感觉---重复性的东西太多了。你会发现,在一个项目有基于角色的管理模块,另外一个项目也同样会有,同样,一个项目有字典表,N个项目也同样会有。遇到这种情况,大部分的人的做法大概会从以前做过的项目里面拷贝到新的项目,但是在拷贝的过程中,我们还是要更改许多东西。感觉重复的东西实在是太多,有没有一种方式能把这些东西抽象出来,从而让我们能从这些繁琐的事情里面解脱出来。还记得以前大学在做PPT的时候,很多为了方便,会直接选择适合的模板去做,那我们开发的时候,是否也可以把一些共性的东西做成模板,通过模板生成项目,然后我们填充修改里面的内容就可以了。于是我萌生了一个开发模板引擎的想法。
其实说白了就是一个代码生成工具,但是又跟代码生成工具有不同的地方,代码生成工具一般会生成一些比较零散的代码段或代码文件,我希望基于模板生成的项目是粒度较为大的,较有针对性而且完整的东西。用过vs的朋友就知道,上面有提供各个方面技术的模板,然而这些模板都比较基础,因为IDE面向的是各个方面的开发,而不仅仅是企业应用的开发。但如果是企业应用的开发,那范围就缩小了很多,我们可以把日常工作中有共性的东西抽出来,从而形成一个规范的模板,下个项目要用的时候,直接导出来用就行。
我先是做了个小尝试,简单地实现了两个模板,一个是Java的Restful项目,一个.net实现的桌面多线程服务,这两个项目的目的主要是验证一下我的想法的可行性,至于模板的规范性还是有待完善了,界面如下图所示:
虽然说模板是一些共性的东西抽象出来,但是每个项目还是有很多个性化的东西,那怎么办?可能只能通过配置去实现了,所以,每个模板所配置的东西都应该是不同,比如Java web项目可能有5个步骤需要配置,.net的桌面项目需要配置的步骤又是不一样。也就是说,根据你选择的模板,后面看到的配置界面应该是不一样(也有可能有相同的步骤)。通过一系列的配置,我们就可以针对特定的场景去生成项目。随着模板不断扩展添加,就可以涵盖企业开发的方方面面,从而减少无谓的重复工作。
开博客的原因主要是为了记录一下工具的开发历程,同时也希望和大家探讨是否有解决上述问题的更好办法。
现在工具的版本号为alpha v0.4,以下是下载的地址:
http://files.cnblogs.com/files/terraengine/v0.4.zip