1

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

在选择 Web 框架时,在决定使用什么时我应该寻找什么?

以下是我在正在查看的框架中注意到的内容:

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

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

我不会说我在看哪个框架,因为我不希望它陷入框架战争。我想知道在评估风险时应该关注项目的哪些其他方面。这应该适用于除 Java EE web 之外的其他领域,如 ORM 等。

4

4 回答 4

3

我会说,所谓的“死”项目,只要项目本身是可靠的并且你喜欢它,就没有那么大的危险。问题是,如果库或框架已经完成了你认为你想要的一切,那么这没什么大不了的。如果您启动并运行了一个稳定的项目,那么您应该完成对框架的考虑(完成!)并只关注您的web 应用程序。不应要求您每个月都使用最新版本更新框架本身。

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

我认为必须的要点:

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

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

于 2010-07-11T03:56:09.163 回答
2

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

  • 大量布局合理的书面文件。糟糕的文档只是意味着我在浪费时间试图找出一切是如何运作的。如果我在玩一些很酷的新微框架或其他东西,这没关系,但对于客户来说就不行了。

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

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

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

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

我可以继续,但这些是我脑海中的一些主要问题。

于 2010-07-11T03:07:43.223 回答
2

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

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

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

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

  • 为什么要使用这个而不是“官方认可的 Java EE 框架”?是出于务实的原因,还是只是想尝试新事物?

  • 如果框架问题导致您错过最后期限或交付糟糕的产品,您将如何与您的老板或客户谈论它?

于 2010-07-11T03:08:52.490 回答
1

您引用的所有迹象都可能对您的框架选择不利。

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

我能想到的唯一可取之处是相对成熟。如果框架或开源组件是成熟的,那么它就有可能按原样完成工作,并且不需要进一步扩展。

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

于 2010-07-11T03:03:16.410 回答