(转)第三只眼看SpringSide-一个极富魅力的偶像团队
严肃一点说,在当今JavaEE领域,如果你不知道SpringSide,如果你不是一个排斥新技术的极端顽固分子,应该就是一个已经不求上进的技术混混。
开玩笑来说,如果你知道SpringSide而不知有AppFuse,那么我可以肯定你的JavaEE一定还是幼儿班的水平,要走的路还会非常长。
借用2007年看几部电影的感想:虽然“兄弟不可靠、组织不可靠、男人女人不可靠”,但最后“帮你的还是你的兄弟,给你正名的还是你的组织”。
http://hae.iteye.com/blog/2119639
SpringSide简介
SpringSide是什么,字面意思正如他们网站上的名称:“春天的傍边”,是“暖冬”还“初夏”呢?在我看来都是,也都不是。
下面我们直接看SpringSide的官方网站中关于SpringSide的介绍:
SpringSide--Pragmatic Enterprise Application KickStart and Common Library Stack,这么长的一个名字下来,不用解释大家都知道是做什么的了----以Spring Framework为core,提供一个Pragmatic的企业应用开发基础以及企业应用中各主题的最佳实践展示。
愿景:为使用Spring框架的开发者提供一个非Demo版的复杂、正式而体现最佳使用实践的参照系统。为JavaEEer必须面对的问题提供合乎Pragmatic原则的解决方案。
SpringSide的四个部分--
Springside-Bookstore: 一个Full Feature的书店示例,兼有书店前台和后台管理,作为典型企业应用的微缩版。
SpringSide-Core :SpringSide封装的核心代码。
SpringSide-Templates: 让用户可以快速复制粘贴构建出自己应用的代码模版,分Application与Plugins两部分。
SpringSide-Generator: 自动整合SpringSide-Application/Plugins生成项目,生成CRUD代码的Eclipse Plugins 和Ant 脚本。
SpringSide涉及了很多当前流行的JavaEE技术,并有机地把这些技术应用有机地整合起来,教您如何解决企业应用开发中会面临的各种问题,比如持久化、Web Service、安全等等。
从1.0到2.0再到现在正在开发中3.0,SpringSide带给了我们一份又一份的技术大餐。让很多渴望学术或*学习的程序员们能够快速学会构建符合企业最佳实践的JavaEE应用。我有一个朋友的朋友的朋友的表弟的网友就曾经用SpringSide那个Bookstore,界面文字换一换变成一个“专业”的电子商务应用销售给客户。
SpringSide的灵魂
然而,SpringSide的灵魂决不是Spring。SpringSide的灵魂所在,是他的主创人江南白衣,一个来自江南经常穿着白衣服的程序侠客。2007年在北京跟江南白衣见了一面,跟他的交流给我留下了比较深的印象,也让我发现了SpringSide的灵魂所在。
由于SpringSide涉及到很多的技术,比如1.0里面就涉及了Spring2、Hibernate 3 、JSP2.0、XFire 、Acegi 、Eclipse BIRT 2 、JBoss Rules 3 、JBpm 、ActiveMQ、Quartz、DWR、Dojo 、JMaki 、Compass 、Groovy 、Commons Validator 、SiteMesh 、OSCache , Ehcache、ExtremeTable、Log4j 、Ant、Maven2。
对于一个普通的程序员,如果他把上面这些框架或工具的用户手册看一遍都要花不少的时间。更何况SpringSide要把他们最好的地方充分发挥出来,有机的整合到一起,形成一个骨架应用,这也就注定了SpringSide团队需要充分掌握这些技术,不但是使用方法,还要针对同类框架及工具进行深入的了解及对比,甚至有的时候还需要扩展,因此这是一个非常具有挑战性的事,是一个人很难完成的事。然而,SpringSide确实做到了,并发布了1.0及2.0。而且大多数都是由江南白衣一人所完成,很多技术一直在升级,比如Spring2升到了Spring2.5、XFire变成了CFX、Struts变成了webwork,面对这些升级,江南白衣一直在跟进,并不断把学习研究的成果分享给大家。
以前在《中国java开源界最可爱的人们》中说过,江南白衣在技术是一个天才人物,他不但年轻,而且好学,并且学得很快,并且文彩很不错,又具有开源精神,是愿意做事,又能做事的人。可以说,在SpringSide团队里,从学习能力及奉献精神上,可能没有一个能赶得上江南白衣。因此你就不难想象为什么大多数人想参与这个项目的人们一直都只能在项目中扮演着学习、打杂或者是建议者的角色,曾经贡献的源码也只能放到了系统回收站中永久封存。
可以这么说,SpringSide缺少什么都可以,就算Spring没有了也无所谓,但是就不能缺江南白衣,这一点可以从SpringSide2007下半年的表现得到印证,同时也充分证明黎叔“二十一世纪最贵的是人才”的决论。由于有了江南这个灵魂人物的存在,使得SpringSide非常具有偶像特质。
SpringSide的不足
由于“为JavaEEer必须面对的问题提供合乎Pragmatic原则的S解决方案”这样的愿景也决定了SpringSide团队奋斗之路的漫长。因为随着JavaEE各项技术的发展,每一年都会有可以用来解决企业级应用的新技术或方案出现,而SpringSide要做的,就是不断融入这些技术,不断围绕着他的主人Spring并肩前进。因此,SpringSide的名字注定了他只能做而且也一直做着随波逐流的事。
http://hae.iteye.com/blog/2119639
在每一年的奥斯卡大奖中,我们都知道除了有最佳男女主角以外,还有最佳男女配角。一个一开始就把自己定义为Side,就好比一个名叫“斯瓦辛格配角”的美女演员,当“斯瓦辛格”在演电影的时候,她可以跟着捧奥斯卡的最佳配角奖;当“斯瓦辛格”当从政当州长后,她可以跟着当秘书,只要主人不死,则这个配角则永远在。
SpringSide的不足其实是很明显的,首先在软件界,没有真正的最佳实践,各种技术都是可选的,一个看似笨拙的东西,只要跟上一个搭档,本来是缺点也会得到弥补,比如EJB之于Spring,对于一个企业来说,现前最佳的肯定就是大家最熟悉而且又能解决问题的东西。
因此,相对于SpringSide,AppFuse在这一方面就要聪明得多,没有最佳的实践,你可以*选择最熟悉的技术构架组合,开始你的企业实用。
由于为SpringSide这个项目贡献源码的人越来越少,因为有能力贡献源码而且也愿意贡献源码的人毕竟在国内越来越少,导致这个项目存在了不少限制,因此一个人的能力肯定是有限的,更何况这个项目的定位本身具有非常大的挑战性。
虽然已经形成了江南、CAC、差沙等组成的核心团队,但代码及文档产出上却基本上仍然是一个人;代码是开源项目的生命所在,而这样的项目要做好,要做成中国的AppFuse决定了这是一个人不可能完成的任务,因此离成功就会很远。
SpringSide经常会处于迷茫的阶段,这不,在SpringSide3里,江南又为是选择Struts1还是Struts2还是SpringMVC迷茫了不少时间。因为整个JavaEE的世界就让人很迷茫,好的东西太多,可选择的东西太多,导致了这种迷茫的出现。
SpringSide现在的水平要想得到开源界大腕的正式认可,这是非常难的,比如你可以看到国外一些知名开源项目的官方文档中提到Huihoo的JFox、但你有看到提到SpringSide的吗?因为这样的应用骨架每一个企业都有自己的,而Spring也不太会过多的关注一直扮演着他Side、Left或Right的其它角色,因为他们自己的示例里面就已经有了不少关于这些的东西。SpringSide里面用的每一种技术及框架都不是无可选择的,而根据个人喜好就支持某一种框架而放弃另一种框架,这难免会给新手们传递错误的信:“xx就是比xx好,你看springside都用了”。
SpringSide不善于合作,比如国内已经有很多优秀的开源项目或框架出现,比如operamasks、JFox、JDon、easyjweb等,通过最近的深入研究,我发现他们都很不错。但在springside项目及文档里,没有一点与这些开源项目相关的,要想让SpringSide更具有生命力,从一个从属角色变为能自己决定自己的命运甚至变成真正的主角,那么就应该充分与国内的开源项目合作,加入对这些国内开源项目的支持。
借用2007年看几部电影的感想:虽然“兄弟不可靠、组织不可靠、男人女人不可靠”,但最后“帮你的还是你的兄弟,给你正名的还是你的组织”。
SpringSide的未来
只要江南在行动,又可以为我们带来很多的东西。江南白衣的回归让SpringSide又开始有了活力,在Spring3的蓝图及日志中我们可以看到,SpringSide已经开始行动,又将会引入当前一些比较流行的技术及框架应用,比如ExtJS、Struts2、RESTfull Service等,给了我们很多的期待。
SpringSide的未来会怎样,是永远站在傍边还是会走到中间,让我们持目以待。期望有更多的人参与到SpringSide中来,贡献出你的代码,只有这样SpringSide的愿景才会更早实现。
开源项目springside的详细选型说明
https://github.com/springside/springside4/wiki/Design