----- Original Message -----
From: "张昊" <
hao.zhang.hi@gmail.com >
To: <
jinhe@51cto.com >
Sent: 2011-03-16 17:15:50 +0800
Subject: J-Hi张昊对您的回复
标题 |
发件人 |
EMAIL |
时间 |
留言方式 |
|
技术咨询 |
金贺 |
jinhe@51cto.com |
03-14 16:10 |
私人留言 |
Delete |
您好,张昊先生,我是51CTO的金贺,有几个问题想请教您一下,请问您方便吗?
我是张昊,请教可真不敢当。如果有什么我能效劳的,您直管说。盼回复 |
在 2011年3月16日 下午5:45,金贺
<jinhe@51cto.com>写道:
非常感谢您,我是看到您的帖子对您很好奇,主要有下面几个问题想咨询您一下。
1. 您是什么时候接触到J-HI这项技术的,基于什么样的目的呢?
我是J-Hi项目的发启者, 从2005年末时我就开如做这个项目了。当时它还只是大家为了探索如何使程序开发更好、更快速、易于管理而又不影响开发人员的编程习惯的一个构想,当初它还只是个底层框架或开发工具,核心团队成员就是用这个小小的底层框架做了很多项目,从未想过会将它开源出来(因为我们觉得做
得还不够好,担心开源后会被同行笑话)。后来随着所接项目的逐渐增多,J-Hi所涉足的行业领域也不断广阔,因此我们也不得不适应需求的变化不断的为它加
入新的功能,慢慢的它变得越来越强壮。突然有一天有人提议我们将它开源吧,大家这才为平台的开源做准备。从我们今年1月14日开始推广以来,有很多的爱好者加到其中,这样我和我的团队感到很欣慰,觉得我们努力得到了大家的认可!
2. 这项技术有什么优点?是否已经在实践中证实呢?
快速的按需动态搭建
目前平台支持的框架有: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来说,是牵一发而动全身的事情,变动一个框架,包括每一个页面,每一个java类,每一个配置文件都要随之而动态的变化。因此它是系统级的工程而非简单的多个框架拼接。
完整而系统的生成方案
代码生成或生成器这实际上在十年前就已经有的东西,无论是实现原理还是具体的工具都不是新鲜事物。J-Hi之所以将代码生成也算作自己的特色,是因为它的完整性与系统性。从完整性来看,J-Hi的生成是一套含盖从数据库底层一直到页面端全部的解决方案,包括数据库表;权限、菜单、多语言等相关基础数据;java类文件;JSP、js文件;相关配置文件等等,因此保证了生成即可运行,从单元体上来看生成文件是完整的,是可独立运行的。从系统性来看,生成的文件是随着你选择的框架不同而不同的,生成的基础是随着框架与数据库的差异而随需变化,系统的解决了生成器的僵硬性,从而灵活的适应开发环境。因此J-Hi的生成方案是系统的,是适应不同框架与数据库的生成方案的。
平台到底生成了些什么?
组件化
J-Hi把组件划分为四类,技术组件、实体组件、业务组件与系统组件,具体内容请参见平台组件化
J-Hi的理论基础请参见:http://www.blogjava.net/hao-zhang-hi/archive/2011/02/27/345277.html
J-Hi就是从实际的项目开发过程中诞生与完善起来的,它把主要把关注放在如何解决快速开发与降低成的问题上。如果从一个项目的整个生命期来看,实际上开发只占了总项目的成本的一小部分,然后就是这一小部分还是有大量的成本损耗。比如在管理上,人员变动对开发的影响;在技术偏向性上,增加了开发人员的学习曲线从而使成本提高;在功能的复用性上,在项目开发过程会发现每次都会做一些稍有差异但实际是功能重叠的东西;在具体coding过程中,会写一样模式化的但又不得不写的东西(如POJO等)。J-Hi就是为了解决上述问题而产生的。
当然J-Hi还有弱小,以后我们还不断的完善,使它越来越强大。
3. 哪些领域能运用这项技术,您能有一些好的建议么?
4. 对于刚刚接触J-HI这项技术的人群,有什么好的学习建议
平台类的产品对于使用它的开发者来说都有同样的特点:使聪明人更加聪明,使懒惰的人更加懒惰(从而失去了思想)。我希望所有接触J-Hi的爱好者都能成为前者,而不是后者。因为在J-Hi的设计之初间中的一个理念就是,让它成为希望了解主流框架人一个学习工具。从这一点来看,J-Hi也跟Appfuse很象,但要比Appfuse更完善,更全面,更贴进去业务。
另:我可以把我的回复发到我的博客上吗?
在 11-3-17,金贺<
jinhe@51cto.com> 写道:
> 非常感谢您百忙之中回复我,您的这些回复使我茅塞顿开呀,看来我也得接触一下这个技术了,回复您可以随便发送的。
>
> 祝您工作顺利,身体健康。以后我有问题还得向您请教,希望您不会拒绝吧,哈哈