full-stack有appfuse,springside,openmasks,grails.......等

 江南白衣在2005年9月的时候,就在他的博客上提出:每个团队都应该有一个Appfuse式的项目,用来演示团队目前的体系框架和设计模式。这种项目的好处有一打:比如为所有项目提供共同的Library Stack,提供最可靠的代码蓝本,保证大家的模式和代码风格一致,加快知识在团队的传播,方便新人的融入,还有为试验代码提供一个稳定简洁的环境。而且,构建或者使用这样的项目要遵守几条铁的纪律:一是强制更新,所有团队approval的最新模式都要refactor到MyAppfuse中;二是规范更新,每次更新都要严格测试并编写更新记录、移植文档;三是强制Copy Start,所有代码都必须从MyAppFuse里Copy而不是随自己喜欢找任意项目的代码。具体内容请访问江南白衣的博客。

  2005年之后,各种Full-stack的框架犹如雨后春笋,江南白衣自己的框架,就演化成了SpringSide。这个框架,也是我最最喜欢的。

  我肯定不可能对每一种框架都了解,因此,我只将最近这一段时间引起我注意的,让我“有一点心动的”。

  第一个当然是SpringSide 2.0了,目前的版本仍然是rc1,但是并不影响我们使用,而且从rc版到正式版并不会增加新的功能,只是修改Bug,因此,我们可以放心的将它应用到我们的项目中,不需要担心版本更新带来的影响。SpringSide 2.0的优点如下:
  1、自动管理各种组件,我们只需要下载SpringSide all-in-one就行了,不需要我们到处去找各种开源组件。使用的时候,SpringSide提供一个非常好用的IDE插件,在生成项目的时候,会自动帮我们生成项目的目录结构、拷贝我们指定的组件,并进行整合。我们不需要自己修改一行配置文件,这些SpringSide都帮我们做好了。我们可以把所有的精力都放到业务逻辑中。
  2、清晰的代码结构,SpringSide对于多层架构的分层非常清楚,对MVC的各个层次都提供了非常好的基础类,我们只需要在这些类上面扩展即可。SpringSide有着非常一致的代码规范,写起代码来很舒心。SpringSide中对于各个层次的代码应该放在项目中的什么地方有非常好的指导意见,不会出现结构混乱找不着北的情况。SpringSide对于各个组件的配置文件的写法、存放位置,都指定了习惯的用法。
  3、对测试提供了完善的支持,对于DAO层提供了非常好的测试基类,对于Control层和View层,我们可以使用集成化测试的方法完成,而SpringSide同样也为我们整合了一个非常好的集成测试框架Selenium。总之,在使用SpringSide的过程中,我没有费力去寻找另外的组件,也没有使用什么复杂的Mock技巧,仅仅使用SpringSide提供的功能,非常方便的完成了各种自动化测试。
  4、全面而详细的开发文档,而且是全中文的哦。

  第二个要介绍的是Grails,目前的最新版本0.6,虽然还没有出1.0版,但是已经很火了,组件Rails框架的魅力。山风小子对它的评价是“一见钟情、再见倾心”,对我来讲,当然也是很有一点心动了。Grails的优点,我认为也有以下几点:
  1、使用了动态的脚本语言Groovy,这种语言形式上接见C、Java、C#、JavaScript等,最明显的特点就是使用{}、分号等来作为程序代码的分隔符。这种语言写起来是很有诗意的,我喜欢。而且Groovy是一种动态语言,动态语言的优点就是可以大脑怎么想程序就怎么写,不再制约于静态语言的程序结构和数据类型。
  2、Grails使用Ruby On Rails的“规约编程”(coding by convention)范例来降低对配置文件和其他样板代码的需求。使用“规约编程” ,如果文件的名称本身就能说明此文件的用途,那么您就不需要在配置文件中再次声明这些内容了。此框架会查看文件名,并自己弄清文件用途。不要配置文件,写起程序来就又舒服了很多。
  3、Grails使用Spring、Hibernate等开源框架,这就是说我们以前学的东西不会白费。

  Grails推出也不是一天两天了,之所以在这里提到,主要是因为《Grails权威指南》就要推出了。跃跃欲试啊。

  第三个要介绍的,是我们国人自己开发的一款基于JSF规范的开源框架:OpenMasks,它的后台就是金蝶。江南白衣是一个牛人,金蝶就是一个牛公司。大家都知道,他是国内比较少的持续在Java中间件领域投入研发并取得一定成绩的厂商。他的应用服务器是第一个通过Java EE5认证的,而且他现在也加入了Java EE的JCP委员会。
  OpenMasks有什么优点呢?
  1、全中文的开发者社区,全中文的开发文档,够吸引人吧?
  2、它把当前相当火爆的AJAX UI框架EXT整合到了其中,并使用Tag进行了良好的封装,提供了能够实现AJAX效果的JSF组件。
  3、提供一个基于Eclipse的有可视化开发界面的IDE。

  第四个要介绍的,不是一个Java框架,而是一个PHP框架。这个框架让我很心动,甚至萌生出放弃Java投入到PHP阵营的想法。之所以会如此,主要是两点:
  1、它也是国产的。
  2、它吸收了很多Java框架中的优秀思想,如MVC模式、TagLib、ORM映射、ActiveRecord模式等等。
  这个框架就是ThinkPHP,它的优点当然远远不止上面这些。它主要是从Struts的结构移植过来并做了改进和完善的,他封装了CURD和一些常用操作,在模版引擎、数据库抽象层、缓存机制÷认证机制和扩展形方面均有独特的表现。对于国内用户来说,它的一些特性更加贴心:PHP4和PHP5完全兼容、完全支持UTF8等等。

  开源的世界太博大精深了,我们就好比是大海中的一叶扁舟,要完全学会并使用这些框架是没有可能的,更何况还要与时俱进,我们的精力毕竟是有限的。在这么多的框架中,我们只要挑选一个,把它完全掌握,就足以应付当前开发中的大多数任务。选哪一个呢?你是不是也像我一样挑花了眼?

  此外,还有一个令我比较激动的消息是关于Linux操作系统的,那就是Asianux 3.0推出了,根据我的经验,红旗Linux将会在不久的将来推出桌面6.0、数据中心服务器6.0和Workstation6.0。期待中。

你可能感兴趣的:(架构)