张昊
J-Hi快速开发平台团队核心成员,平台项目的主要发起者与组织者。十多年来一直从事于J2EE企业级应用开发及项目管理工作,对于软件实现有自己一套独特的理解。热衷于设计模式、软件架构及项目管理方面的研究,对于目前主流的java开源框架均有深入了解。希望J-Hi这个开源平台也能象那些主流开源框架一样在中国开花结果,为中国的开源事业尽自己的一份绵薄之力。他目前主要的精力都放到平台的推广上。他喜欢看哲学与宗教方面的书籍,如果您有这方面的爱好也可以与他联系,他的电子邮箱为:hao.zhang.hi@gmail.com
51CTO: 您是什么时候接触到J-Hi这项技术的,基于什么样的目的呢?
张昊:我是J-Hi项目的发启者, 从2005年末时我就开始做这个项目了。当时它还只是大家为了探索如何使程序开发更好、更快速、易于管理而又不影响开发人员的编程习惯的一个构想,当初它还只是个底层框架或开发工具,核心团队成员就是用这个小小的底层框架做了很多项目,从未想过会将它开源出来(因为我们觉得做得还不够好,担心开源后会被同行笑话)。后来随着所接项目的逐渐增多,J-Hi所涉足的行业领域也不断广阔,因此我们也不得不适应需求的变化不断的为它加入新的功能,慢慢的它变得越来越强壮。突然有一天有人提议我们将它开源吧,大家这才为平台的开源做准备。从我们今年1月14日开始推广以来,有很多的爱好者加到其中,这样我和我的团队感到很欣慰,觉得我们努力得到了大家的认可!
51CTO :J-Hi这项技术有什么优点?是否已经在实践中证实呢?
张昊:J-Hi这项技术主要有以下几个几优点
快速的按需动态搭建
目前平台支持的框架有:webwork、struts2、spring、hibernate、ibatis2、ibatis3,对于这些框架您可以通过可视化(J-HI Studio,eclipse插件)的方式随意组合,通过工程创建向导,自动化的按照你所选择的框架快速的动态搭建起开发工程。我们之所以将J-Hi做成多框架动态搭建,主要是考虑到不同企业的开发团队对技术的倾向性会有很大差别,比如对于ORM有的人就喜欢hibernate,而有的人就觉得hibernate太强硬,喜欢用半自动化的ibatis。J-Hi基于这个目的为开发者提供了更多的可选择性。在此要注意对于平台多框架的集成并不象一般意思上的集成(即几个框架拼接在一起就可以象appfuse一样),因为平台的集成还要包括很多通用业务并且与数据库表是有关系的(一般搭建多框架是没有业务的所有的东西都要由你亲自去开发,而平台会有很多的业务已经预留在平台中)。举个例子:比如安全管理,这是平台的一个通用业务包括角色、权限等。在切换到不同的框架比如struts或webwork;hibernate或ibatis时,平台的底层要自动的适应这种变化,这是有一定的创新点的J。当然我们以后还会集成更多、更优秀的框架在平台之中,比如SpringMVC,SpringJDBC等等,在数据库端我们也会再多支持一些数据库,当然集成数据库也不是传统意义上的只是一个数据库连接,而是针对不同的数据库差异会做不同的方言,不同的数据库脚本还要有相应的生成模板等等。
完整而系统的生成方案
代码生成或生成器这实际上在十年前就已经有的东西,无论是实现原理还是具体的工具都不是新鲜事物。J-Hi之所以将代码生成也算作自己的特色,是因为它的完整性与系统性。从完整性来看,J-Hi的生成是一套含盖从数据库底层一直到页面端全部的解决方案,包括数据库表;权限、菜单、多语言等相关基础数据;java类文件;JSP、js文件;相关配置文件等等,因此保证了生成即可运行,从单元体上来看生成文件是完整的,是可独立运行的。从系统性来看,生成的文件是随着你选择的框架不同而不同的,生成的基础是随着框架与数据库的差异而随需变化,系统的解决了生成器的僵硬性,从而灵活的适应开发环境。因此J-Hi的生成方案是系统的,是适应不同框架与数据库的生成方案的。
组件化
J-Hi把组件划分为四类,技术组件、实体组件、业务组件与系统组件,具体内容请参见平台组件化。J-Hi就是从实际的项目开发过程中诞生与完善起来的,它把主要把关注放在如何解决快速开发与降低成的问题上。如果从一个项目的整个生命期来看,实际上开发只占了总项目的成本的一小部分,然后就是这一小部分还是有大量的成本损耗。比如在管理上,人员变动对开发的影响;在技术偏向性上,增加了开发人员的学习曲线从而使成本提高;在功能的复用性上,在项目开发过程会发现每次都会做一些稍有差异但实际是功能重叠的东西;在具体coding过程中,会写一样模式化的但又不得不写的东西(如POJO等)。J-Hi就是为了解决上述问题而产生的。当然J-Hi还有弱小,以后我们还不断的完善,使它越来越强大。
51CTO: 哪些领域能运用J-Hi这项技术,您能有一些好的建议么?
张昊:我们用J-Hi做过很多领域,互联网我们做过电子商务的网站,物联网我们做过RFID的票务管理系统,传统行业的ERP、进销存、OA这些我们都有做过。J-Hi开发平台实际上它是不拘泥于某种技术或某个领域的开发工具。我们拿sturts举例来说,有人用它做互联网,有人用它做CMS,也可能有人用它做物联网的表现层,而它本身是中立的它只是个工具不受限于具体的领域。J-Hi也是一样
51CTO: 对于刚刚接触J-Hi这项技术的人群,有什么好的学习建议么?
张昊:平台类的产品对于使用它的开发者来说都有同样的特点:使聪明人更加聪明,使懒惰的人更加懒惰(从而失去了思想)。我希望所有接触J-Hi的爱好者都能成为前者,而不是后者。因为在J-Hi的设计之初间中的一个理念就是,让它成为希望了解主流框架人一个学习工具。从这一点来看,J-Hi也跟Appfuse很象,但要比Appfuse更完善,更全面,更贴进去业务。
采访总结:
下面给出张昊先生博客链接:http://www.blogjava.net/hao-zhang-hi/MyPosts.html
【编辑推荐】