框架选择的风险评估

时间:2010-07-11 02:59:48

标签: frameworks comparison risk-analysis

我正计划开始一个新项目,并正在评估各种Web框架。有一个我正在认真考虑,但我担心它的持久力。

在选择Web框架时,在决定使用什么时应该注意什么?

以下是我注意到的框架:

  • 小社区。每天用户列表上只有几条消息
  • 自6个月前的上一版本以来,“新闻”页面上没有新闻
  • 过去30天没有svn提交
  • 文档很好,但自上次发布以来维基未更新
  • 最新版本仍然不在maven存储库中

这不是官方批准的Java EE框架,但我看到有几个人在Stack Overflow上回答各种问题时提到它是一个很好的解决方案。

我不会说我正在考虑哪个框架,因为我不想让它进入框架战争。我想知道在评估风险时我应该看看项目的其他方面。这应该适用于除Java EE Web之外的其他领域,如ORM等。

4 个答案:

答案 0 :(得分:3)

我会说所谓的“死”项目并不是那么大的危险,只要项目本身是坚实的并且你喜欢它。问题是如果图书馆或框架已经做了你能想到的所有事情,那么这并不是什么大问题。如果你有一个稳定的项目启动并运行,那么你应该完成思考框架(完成!)并只关注你的 webapp。您不应该要求每月使用最新版本更新框架本身。

就个人而言,我认为最重要的一点是你找到一个对你的项目来说非常直观的。最有意义的是什么? MVC? URL中的每个元素都应该是一个单独的对象吗?交互性(AJAX)如何工作?选择一些东西是没有意义的,因为它是一个“行业标准”,或者因为它被许多大牌网站使用。也许他们选择它的需求与你的完全不同。 阅读每个框架的教程并且至关重要。如果它不符合你的思维方式,或者你已经看得更优雅,那就继续吧。您在这里考虑的是设计,良好的设计无异于保持灵活性和可扩展性。每种语言都有数以百计的新旧网络框架。你一定会发现有六个只是你想要在你的项目中思考的方式。

我认为强制要点:

  • 可通过插件扩展:检查是否已有各种中间件任务的插件,如memcache,gzip,OpenID,AJAX良好等。
  • 简单性和模块性:学习曲线越复杂越陡,您对稳定性的信任就越少;对特定技术越“锁定”,你最终会在脚踝处缠绕链条的可能性越大。
    • 数据库不可知:您可以使用sqlite3进行开发,然后通过更改单行代码或配置来切换到生产数据库吗?
    • 平台无关:你可以在Apache,lighttpd等上运行吗?你能把它移植到云中运行吗?
    • 模板无关:您可以切换出模板系统吗?假设你聘请了专门的设计师,他们真的想要别的东西。
  • 文档:如果它是开源的,我不是那么严格,但是需要有足够的官方文档才能让我完全理解如何编写我自己的插件。还要看看是否有使用相同框架的工作站点的源代码。
  • 许可证和源代码:您是否可以访问源代码,是否可以修改它?考虑你是否可以在商业上使用它! (即使你目前没有计划这样做。)

总而言之:灵活性。如果我对所有四点感到满意,那我就完成了。请注意我在那里没有关于“死亡”的任何内容?如果核心设计很好并且可以轻松安装插件来执行你想要做的每个web-dev 3.0-beta流行语,那么我不在乎最后一次SVN提交是否在2006年。

答案 1 :(得分:2)

在我决定将它用于生产环境项目之前,我在框架中寻找的东西是:

  • 大量精心布置和书面文档。糟糕的文档只是意味着我在浪费时间去寻找一切如何运作。如果我正在使用一些很酷的新微框架或其他东西,这是可以的,但不适用于客户端。

  • 一个规模适中的社区,以便您可以提出问题等。一个有趣和积极的IRC频道是一个很大的优势。

  • 产品的不断迭代。是否每天/每周关闭或打开错误?可能是一个好兆头。

  • 我可以浏览框架的代码并了解正在发生的事情。良好的框架代码意味着项目的长期生命有更大的成功机会。

  • 我喜欢和它一起工作。如果我玩它几个小时,这是我生命中最糟糕的时期,我肯定不会将它用于客户。

我可以继续,但这些是我头脑中的主要原因。

答案 2 :(得分:2)

除了查看框架之外,在评估风险时,您还需要考虑很多关于您自己(以及任何其他团队成员)的事情:

  • 如果框架是一个新的,不成熟的“前沿”框架,您是否愿意并且能够调试它并修复或解决您遇到的任何问题?

  • 如果有一个小型社区,您将不得不自己进行大量的调试和诊断。你有时间这样做,仍然可以满足你的最后期限吗?

  • 您是否亲自查看过该框架,以确定它有多好,或者您是否愿意依赖别人对此的评价?你为什么相信他们的判断?

  • 为什么要使用此而不是“官方认可的Java EE框架”?这是一个实用的理由,还是只是想尝试一些新的东西?

  • 如果框架问题导致您错过最后期限或交付不良产品,您将如何与老板或客户讨论?

答案 3 :(得分:1)

您引用的所有迹象都可能是您选择框架的坏消息。

我要寻找的另一件事是在亚马逊等地提供的书籍。如果有可用的文档,那就意味着作者相信它具有牵引力,您将能够找到了解它的用户。

我能想到的唯一的拯救恩典是相对成熟。如果框架或开源组件成熟,那么它有可能按照书面形式完成工作,并且不需要进一步扩展。

仍然应该有一个带有一些活动证据的bug跟踪器,因为没有软件没有bug(除了我的)。但在这种情况下,它不一定是一个请求的推动者。