专访:Java框架SimpleFramework开发团队创始人

开发 后端
51CTO开发频道专访Simpleframework框架团队核心成员陈侃先生,向大家讲述Simpleframework框架从创意到研发再到产品的完整脉络和技术领域以及对广大爱好者的一些建议。

[[25428]]

陈侃先生与家人

陈侃,是simpleframework.net 的首席架构师和共同创始人。在2001年秋季全面转向对Java,并对Java情有独钟,发起了simpleframework开源项目,并参与了许多前沿技术的开发(如 工作流、AOP、脚本语言和Web等),技术之外,还有一手飞车绝技,酷爱打羽毛球。

51CTO:向我们各位网友介绍一下Simpleframework框架吧。

陈侃:Simple最早来自工作流Web客户端的自定义表单功能。当时曾考虑过采用标签库或XForm来实现,为避免表单定义和JSP语法的混搭,决定采用XML来描述表单的元信息,同时为更好的兼容标签库和Struts等基于Servlet的技术,最终选用了Filter拦截响应的HTML流,此即Simple 的起源。

Simple V1仅处理了表单,在使用过程中逐步发现其实完全有能力处理整个请求页面,如同样用分离的XML去描述相关的业务,会极大减轻开发工作,更重要的是,可以定义一套基于XML描述的组件规范,从而实现业务相关的代码级积累,于是诞生了Simple V2。或许有人会问:Simple V2会不会和Struts一样呢?无需担心:

Simple V2面向组件,而Struts面向请求,性质不同。

Simple V2以XML描述(或声明)组件,学习曲线低。

Simple V2不仅简化客户端,而且也大大简化服务器端。

Simple V2面向业务的组件库可避免大部分的重复开发。

SimpleV2解析的基础是HTML而非标签库,兼容性更强。

Simple V2大幅减少代码量,降低了系统构建的复杂度,更高效和安全。

SimpleV3 解决了Simple V2以下几个缺陷:

组件不规范: Simple V2虽具备组件思想,但组件定义的不开放,以及Simple团队能开发组件,而其他开发人员不能快速上手,无统一规范。

组件无复合:Simple V2高级组件实现过于复杂,一些本应通过组件间的组合就可形成的组件,在Simple V2中却自成体系,无法继承和复合。

客户端弱势:随着Web技术的发展,尤为浏览器的提速,原本服务器要做的事,现很多已转移到了客户端

渲染方式单一:Simple V2的组件只提供Javascript一种渲染方式,而作为框架技术,不应该仅此一种方式。

数据访问死板:Simple V2仅通过基于Spring JDBCTemplate的封装实现数据访问。

SimpleV3对数据访问层进行了优化,实现目标如下:

为组件访问DB、Lucene、No-SQL提供一致的编程接口。

Bean获取提供更灵活的架构,诸如通过配置可选用基于数据库、缓存,或分布式缓存的支撑方式。

数据访问更高效,可满足超大规模数据处理的业务需求。

SimpleFramework根据java应用发展路线如下图:

 

51CTO:在开发Simpleframework框架的过程中遇到过哪些挑战和困难呢?怎么样克服的?

陈侃:我们与很多开发人员一样,开始迷恋框架,迷恋框架设计的优雅以及对于开发的便利。但现在更关注可以解决我的什么问题。

首先,初期的时候framework的设计在大部分都是猜测,刚开始的时候这些猜测大部分都很准,因为这个时候距离是framework的设计者可以看到了,随着项目时间的增长,在加上中间需求的一些变更,这时候的位置已经不是framework的设计者所能看到的距离了。这个时候framework对于开发限制开始突出,而开发人员碍于修改framework成本太高,很多时候被framework所牵制。 所以我们提出基于组件的开发模式。

其次,framework的设计思想也会随着项目人员的进进出出,项目进度的压力,大家都没有实践仔细的去看framework。framwork的设计思想变的不再清晰,大家开始按照自己的对于framework的理解来写代码,后来着更不理解framework,会照那些前面未必正确的理解的代码来书写。

依靠团队的力量

Simple团队不仅是在维护一份源代码,更重要的是维护这个项目所承载的知识。而这些知识不是只记在某些关键人物的脑中,我们团队成员都是每周进行沟通,分享,交流。

51CTO:Simpleframework框架相比于其他框架,优点在哪里?或者说着重点在哪里?

陈侃:先说下Simpleframework的优点:

由于其贯穿始终的核心理念是“组件构建,业务复用,资源积累”,决定了有以下特点。

全程覆盖:具有可支撑Web应用开发所需的成体系各类组件。

组件规范:具有规范的组件接口定义,基于同一规范实现组件。

业务组件化:应用或模块级可复用的组件化封装。

可持续积累:应用资源及业务组件的可持续积累。

组件化开发:开箱即用和全程覆盖的配置化组件。

HTTP原生态:保留HTML/HTTP及请求/响应的原生态。

无码AJAX应用:内置AJAX引擎用户少用或不用Javascript。

资源继承:对既有应用资源的有效整合及平滑迁移。

有效补充:对现有Web框架或技术的非侵入式补充。

开放架构:开放及随需扩展的组件体系架构。

无缝兼容:对现有Web及新技术的无缝兼容。

简单实用:组件化配置化的Web应用开发过程。

从另一方面来看: 我们以自身及相关技术为主线,以SNS为载体,基于SimpleFramework组件实现的官方技术社区。在企业应用方面提供完全组件化,便于第三方扩展和整合应用。Simpleframework组合应用方式,融交流互动和内容发布于一体,采用人性化的操作模式和成熟的技术(CSS3/HTML5)。

51CTO:: Simpleframework框架今后的发展方向是什么呢?有哪些功能需要加强?

 

陈侃:中国的互联网从门户时代,到Wiki、博客等为代表的Web2.0时代,再到当今的SNS时代,不仅改变着人们交流和沟通方式,也改变着信息的传播渠道和速度,既将网络媒介从计算机延伸到了手机等客户端,也将人们的日常生活向互联网延伸,甚至使得内容及其形式和质量都走向高速膨胀的时代,对互联网和普通网民的影响不仅是空前,而且绝后!

伴随云计算的浪潮,SaaS作为一种新型的软件应用模式,必将对企业的信息化产生重大影响。其未来的发展从标准化到行业化再至大众化,SaaS的服务内容不仅面向企业,也提供面向个人的个性化服务产品,且逐步融入SNS元素,即SaaS与SNS的相互渗透,逐步从以应用为主线发展而为以应用为目标、以“人”为核心、以交流-沟通-协作为承载的融合式发展道路。

我们进半年的工作主要完成以下几点工作。

完善现有的SNS组件。

逐步开发新的SNS组件。

与个性化应用相结合,力求创新。

51CTO::您对国内开源项目的未来有什么看法?

陈侃:在整个开源发展过程中,开源是一个大方向,大家现在都看到了,可能几年之前大家在想,这会不会成为一个将来呢,会不会有什么样的问题存在呢?现在大家都看到这是一个大方向,只要用心把产品做好,开源在国内还是很有机会的。

[[25429]]

Smpleframework团队成员与团队形成的过程的介绍

我们的团队成员共5人。

陈侃,是simpleframework.net 的首席架构师和共同创始人。在2001年秋季全面转向对Java,并对Java情有独钟,发起了simpleframework开源项目,并参与了许多前沿技术的开发(如工作流、AOP、脚本语言和Web等),技术之外,还有一手飞车绝技,酷爱打羽毛球。

赵贵根,系统过程博士,系统架构师,团队的精神领袖。为团队把控工作重点、难点和方向,曾参与过大型的HIS系统、电子病历、零售企业POS系统、中小企业ERP系统、电力OA系统、国家电网电能采集系统、联通资源管理系统的分析设计和建设过程。目前正致力于SimpleFramework技术与思想的推广。

刘彬,目前从事企业信息化方面的研发及架构工作,有Java大型开发项目经验,兴趣的技术领域是SOA、Workflow、J2EE编程,Simpleframework的开源项目建设,并致力于Simpleframework问题的解决和技术推广。

金牛,中科院硕士,多年从事安全领域的研究和技术工作。目前致力于Simple的宣传和推广工作。爱好打球、登山、游泳。

夫子,对技术非常痴迷,热爱开源事业,多年的企业架构经验,精通数据库的优化与大数据量的处理。

团队形成的过程比较简单了,大家在理念上一致并加入组织。关键在于大家在基于现有框架处理问题的时候,在解决方案与框架方面有共同的理念与认识,更希望对更多有相同困惑的人可以提供帮助,就形成了SimpleFramework团队。

责任编辑:金贺 来源: 51CTO
相关推荐

2012-04-02 19:17:37

苹果

2010-12-20 09:23:55

Flipboard用户体验

2014-08-07 03:19:54

Coding协作开发

2010-03-17 09:42:39

Twitter创始人

2011-04-02 11:17:23

移动开发团队移动开发

2021-07-21 17:24:28

OpenAI机器人AI

2014-06-05 15:14:14

DCIM

2010-08-11 08:35:00

Scala 2.8Scala创始人Martin Oder

2011-10-17 15:22:59

TechEd2011

2009-06-19 16:44:56

SpringJava EE

2010-05-04 16:22:45

Unix系统

2011-04-21 10:59:44

SimpleFrameWeb

2013-09-12 14:05:23

App

2012-04-25 16:16:08

Qcon2012Web APPPhoneGap

2010-11-08 14:11:04

云计算Spring框架创始人

2011-01-30 20:02:44

YunTable吴朱华云计算

2011-06-13 19:23:13

LBS街旁Foursquare

2010-08-20 09:27:40

Java创始人Android

2011-08-31 08:42:24

Java创始人高司令谷歌

2012-06-14 16:21:24

LinuxLinus Torva
点赞
收藏

51CTO技术栈公众号