如何选择一个优秀的Web开发框架?

openkk 12年前
   <p> 使用 Web 开发框架,可以帮助开发者提高 Web 开发工作的质量和效率,大大减少开发工作量。但是目前互联网中充斥着各种各样的 Web 开发框架,这些框架都可以为开发者的项目提供各种功能扩展,如何选择成为了棘手的问题。</p>    <p> 软件工程师 Ricardo Zuasti 所在的公司目前正在评估未来几年内将使用的 Web 开发框架,他认为这次评估是非常重要的。他还给出了上一次评估的结果,“通过评估,我们最终使用 Struts 2 驱动的 Java 应用程序服务器作为 MVC,Tiles 作为模板引擎,jQuery 作为 Javascript 特效,DWR 用于 AJAX 调用,MyBatis 作为 ORM”。</p>    <p> 对于此次 Web 开发框架的选择,Ricardo 给出了他们公司的选择依据。<strong>此次他们只评估基于 Ruby、Python 和 Java 的框架,而且由于公司有很多 Java 平台上的经验和知识积累,所以基于 Java 的框架会多一些。</strong>Ricardo 指出,这并不表示基于 .NET、PHP 和其他技术的框架不行,相反,它们也非常棒,选择这三种框架只是从公司业务上考虑。</p>    <p> <strong>Ricardo 从大量框架中筛选出了候选方案,筛选原则:</strong></p>    <blockquote>     <p>所有框架必须是免费使用的,并且最好是开源的。此外,使用这些框架进行开发时,无需使用专有 IDE、应用服务器或数据库。</p>    </blockquote>    <p> <strong>候选方案如下:</strong></p>    <ul>     <li>Play Framework 2.0</li>     <li>Ruby on Rails</li>     <li>Django</li>     <li>Google Web Toolkit</li>     <li>Spring Roo</li>     <li>Spring Framework</li>     <li>Struts 2</li>     <li>JBoss Seam</li>    </ul>    <p><strong> 评估标准:</strong></p>    <p> 将根据以下标准对这些框架进行评估:</p>    <ul>     <li>学习曲线</li>     <li>针对简单任务的开发效率</li>     <li>针对复杂、特殊任务的开发效率</li>     <li>依赖管理</li>     <li>代码性能/安全优化调整的能力</li>     <li>平台升级/冗余能力</li>     <li>在企业市场中的认同度</li>     <li>开发、使用 SOAP 和 REST 服务的复杂性</li>    </ul>    <p> 在评估的每个环节中,会为每个框架标记上差、中、好的成绩。根据上面的标准,Ricardo 会为每个框架执行下面的具体任务:</p>    <ul>     <li>在开发工作站上安装框架</li>     <li>使用免费的 IDE、应用服务器和数据库来配置一个开发环境</li>     <li>开发“Hello World”或框架教程中描述的类似示例</li>     <li>修改示例,在自定义结构上执行特定的数据库查询,并显示结果</li>     <li>添加一个依赖项到第三方库中,并在我们的应用程序中使用它执行一个计算</li>     <li>开发一个“Hello world”REST 服务</li>     <li>执行我们的应用程序中的服务</li>    </ul>    <p> Ricardo 称,目前准备从 Play Framework 2.0 框架开始评估,将在后续文章中带来评估结果。</p>    <p> 需要注意的是,本文列出的这些评估项可作为个人开发者选择框架时的参考,而企业开发者在实际的选择中,还需要考虑到公司的主要开发环境、业务需要、协作等因素。笔者也会跟踪 Ricardo 的评估过程,并在后面的文章中公布最终评估结果。</p>    <p> 英文原文:<a href="/misc/goto?guid=4958340157494690122" target="_blank">Choosing a Web Development Framework: Options and Criteria</a></p>    <div id="come_from">    来自:     <a id="link_source2" href="/misc/goto?guid=4958340158306579744" target="_blank">www.iteye.com</a>    </div>