为什么java世界没有像微软的visual studio那样的快速开发平台,其中一个原因固然是因为微软封装了很多东西,提供了强大的集成工具并且要求你按照微软的设计思路来设计系统,但是java世界具备visual studio中的任何一种组件,所缺少的只是没有人或者厂商将他们集成起来,而之所以没有人去做,一个很大的原因恐怕是java里面每种组件我们都有太多的选择,web框架有struts,spring,webwork2以及其它的,ORM也有EJB,JDO以及hibernate,ibatis,obj供选择,IDE有JBuilder,Eclipse,IDEA,JDeveloper以及Netbeans,另外的其它的组件也是多得不可胜数,但是我们现在已经可以看到快速开发平台推出的希望了,首先是IDE的统一,Borland,BEA都放弃了开发自己的IDE转向Eclipse,而Eclipse3.1的功能和性能表现也足以吸引很多原来使用其它IDE的用户,而SUN的Netbeans一向不为大家所认可(SUN开发的大部分开发工具好像都是这个下场),因此有了IDE的统一,其它的组件基本上都可以围绕她来进行,加上Eclipse插件开发非常的方便,因此这更加促进了对它的扩展,而现在的情况也确实是向这个方向迅猛发展的。有了这个基础,我就来谈谈我对未来的这个快速开发平台的期望了(对于新开发的系统):
项目管理:可以使用maven或者ant,对于小一些的项目可以使用ant,对于项目管理的内容很多的可以考虑采用maven。
版本管理:基本上可以选定cvs。
IDE:不用说,就是Eclipse了。
系统架构:以Spring为核心的架构应该是比较好的选择。
表现层:struts或者freemarker,这个可能选择性太多,除了struts外好像还没有哪一个有那么广泛的用户基础。
ORM:Hibernate应该是现在的不二之选了。
辅助工具:xdoclet,可以根据项目的需要进行部分的内容的生成,减少很多手工的工作,也许应该有更多的缺省的扩展。
单元测试:Junit或者TestNG之类的,虽然有很多人说junit已经不那么好用了,但是对于一般的项目应该还是够用的。
其实还有很多其它的组件没有谈到,包括页面测试,报表,缓存等等,但是我这次想说的其实不是这些,我的核心其实是里面最不起眼的xdoclet,因为它其实可以作为所有这些组件的一个黏结剂,核心其实就是代码生成,我理想中的情况如下:
开发人员最初编写的就是一个POJO的属性列表,而这个属性列表的内容可能来自系统的设计文档或者其它的建模文档。
根据POJO的属性列表生成对应的POJO类
修改POJO,增加需要的hibernate或者其它的例如页面生成,spring配置需要的信息。
生成系统的完整骨架,包括spring配置文件,hibernate映射文件,JSP页面
修改生成的内容,对于细节的地方进行修改
依然很复杂,那么我们不妨再简单一些,编写POJO属性列表的时候增加hibernate配置信息,页面配置信息以及spring配置信息,一步到位生成全部的基础代码,或者是写一个这样的文件,点击右键,点击Generate target page...,在出现的对话框里面选择需要生成或者更新(覆盖)的对象,可以是hbm文件或者是页面文件或者是spring配置。
可能很多人觉得我是白痴,开发一个系统哪里这么简单,但是这样的一个系统已经为我们生成了系统的骨架,完成了很多烦琐的我们大部分人都不愿意做的枯燥工作,为什么不那样做呢?不管别人如何看,我会自己试验这样的系统的可行性的,也许是一个值得做的方向。
当然,一个复杂的系统的快速开发还远远不止这些,特别是系统要求是中型以上的系统,业务逻辑比较复杂,要求国际化,要求页面美观,易于修改定制等等,但是并非不可能,我们可以根据以前积累的经验定制一套这样的系统,例如ant+eclipse+spring+hibernate+freemarker+xdoclet+css,在系统组件的选择确定的情况下,我们甚至可以抛弃xdoclet使用自己完成的生成工具更好更灵活的的生成我们需要的内容