陈侃先生与家人
陈侃,是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::您对国内开源项目的未来有什么看法?
陈侃:在整个开源发展过程中,开源是一个大方向,大家现在都看到了,可能几年之前大家在想,这会不会成为一个将来呢,会不会有什么样的问题存在呢?现在大家都看到这是一个大方向,只要用心把产品做好,开源在国内还是很有机会的。
Smpleframework团队成员与团队形成的过程的介绍
我们的团队成员共5人。
陈侃,是simpleframework.net 的首席架构师和共同创始人。在2001年秋季全面转向对Java,并对Java情有独钟,发起了simpleframework开源项目,并参与了许多前沿技术的开发(如工作流、AOP、脚本语言和Web等),技术之外,还有一手飞车绝技,酷爱打羽毛球。
赵贵根,系统过程博士,系统架构师,团队的精神领袖。为团队把控工作重点、难点和方向,曾参与过大型的HIS系统、电子病历、零售企业POS系统、中小企业ERP系统、电力OA系统、国家电网电能采集系统、联通资源管理系统的分析设计和建设过程。目前正致力于SimpleFramework技术与思想的推广。
刘彬,目前从事企业信息化方面的研发及架构工作,有Java大型开发项目经验,兴趣的技术领域是SOA、Workflow、J2EE编程,Simpleframework的开源项目建设,并致力于Simpleframework问题的解决和技术推广。
金牛,中科院硕士,多年从事安全领域的研究和技术工作。目前致力于Simple的宣传和推广工作。爱好打球、登山、游泳。
夫子,对技术非常痴迷,热爱开源事业,多年的企业架构经验,精通数据库的优化与大数据量的处理。
团队形成的过程比较简单了,大家在理念上一致并加入组织。关键在于大家在基于现有框架处理问题的时候,在解决方案与框架方面有共同的理念与认识,更希望对更多有相同困惑的人可以提供帮助,就形成了SimpleFramework团队。