使用Web开发框架,可以帮助开发者提高Web开发工作的质量和效率,大大减少开发工作量。但是目前互联网中充斥着各种各样的Web开发框架,这些框架都可以为开发者的项目提供各种功能扩展,如何选择成为了棘手的问题。 

软件工程师Ricardo Zuasti所在的公司目前正在评估未来几年内将使用的Web开发框架,他认为这次评估是非常重要的。他还给出了上一次评估的结果,“通过评估,我们最终使用Struts 2驱动的Java应用程序服务器作为MVC,Tiles作为模板引擎,jQuery作为Javascript特效,DWR用于AJAX调用,MyBatis作为ORM”。 

对于此次Web开发框架的选择,Ricardo给出了他们公司的选择依据。此次他们只评估基于Ruby、Python和Java的框架,而且由于公司有很多Java平台上的经验和知识积累,所以基于Java的框架会多一些。Ricardo指出,这并不表示基于.NET、PHP和其他技术的框架不行,相反,它们也非常棒,选择这三种框架只是从公司业务上考虑。 

Ricardo从大量框架中筛选出了候选方案,筛选原则: 

引用
所有框架必须是免费使用的,并且最好是开源的。此外,使用这些框架进行开发时,无需使用专有IDE、应用服务器或数据库。



候选方案如下: 

  • Play Framework 2.0
  • Ruby on Rails
  • Django
  • Google Web Toolkit
  • Spring Roo
  • Spring Framework
  • Struts 2
  • JBoss Seam

评估标准: 

将根据以下标准对这些框架进行评估: 

  • 学习曲线
  • 针对简单任务的开发效率
  • 针对复杂、特殊任务的开发效率
  • 依赖管理
  • 代码性能/安全优化调整的能力
  • 平台升级/冗余能力
  • 在企业市场中的认同度
  • 开发、使用SOAP和REST服务的复杂性

在评估的每个环节中,会为每个框架标记上差、中、好的成绩。根据上面的标准,Ricardo会为每个框架执行下面的具体任务: 

  • 在开发工作站上安装框架
  • 使用免费的IDE、应用服务器和数据库来配置一个开发环境
  • 开发“Hello World”或框架教程中描述的类似示例
  • 修改示例,在自定义结构上执行特定的数据库查询,并显示结果
  • 添加一个依赖项到第三方库中,并在我们的应用程序中使用它执行一个计算
  • 开发一个“Hello world”REST服务
  • 执行我们的应用程序中的服务

Ricardo称,目前准备从Play Framework 2.0框架开始评估,将在后续文章中带来评估结果。 

需要注意的是,本文列出的这些评估项可作为个人开发者选择框架时的参考,而企业开发者在实际的选择中,还需要考虑到公司的主要开发环境、业务需要、协作等因素。笔者也会跟踪Ricardo的评估过程,并在后面的文章中公布最终评估结果。