我正计划开始一个新项目,并正在评估各种Web框架。有一个我正在认真考虑,但我担心它的持久力。
在选择Web框架时,在决定使用什么时应该注意什么?
以下是我注意到的框架:
这不是官方批准的Java EE框架,但我看到有几个人在Stack Overflow上回答各种问题时提到它是一个很好的解决方案。
我不会说我正在考虑哪个框架,因为我不想让它进入框架战争。我想知道在评估风险时我应该看看项目的其他方面。这应该适用于除Java EE Web之外的其他领域,如ORM等。
答案 0 :(得分:3)
我会说所谓的“死”项目并不是那么大的危险,只要项目本身是坚实的并且你喜欢它。问题是如果图书馆或框架已经做了你能想到的所有事情,那么这并不是什么大问题。如果你有一个稳定的项目启动并运行,那么你应该完成思考框架(完成!)并只关注你的 webapp。您不应该要求每月使用最新版本更新框架本身。
就个人而言,我认为最重要的一点是你找到一个对你的项目来说非常直观的。最有意义的是什么? MVC? URL中的每个元素都应该是一个单独的对象吗?交互性(AJAX)如何工作?选择一些东西是没有意义的,因为它是一个“行业标准”,或者因为它被许多大牌网站使用。也许他们选择它的需求与你的完全不同。 阅读每个框架的教程并且至关重要。如果它不符合你的思维方式,或者你已经看得更优雅,那就继续吧。您在这里考虑的是设计,良好的设计无异于保持灵活性和可扩展性。每种语言都有数以百计的新旧网络框架。你一定会发现有六个只是你想要在你的项目中思考的方式。
我认为强制要点:
总而言之:灵活性。如果我对所有四点感到满意,那我就完成了。请注意我在那里没有关于“死亡”的任何内容?如果核心设计很好并且可以轻松安装插件来执行你想要做的每个web-dev 3.0-beta流行语,那么我不在乎最后一次SVN提交是否在2006年。
答案 1 :(得分:2)
在我决定将它用于生产环境项目之前,我在框架中寻找的东西是:
大量精心布置和书面文档。糟糕的文档只是意味着我在浪费时间去寻找一切如何运作。如果我正在使用一些很酷的新微框架或其他东西,这是可以的,但不适用于客户端。
一个规模适中的社区,以便您可以提出问题等。一个有趣和积极的IRC频道是一个很大的优势。
产品的不断迭代。是否每天/每周关闭或打开错误?可能是一个好兆头。
我可以浏览框架的代码并了解正在发生的事情。良好的框架代码意味着项目的长期生命有更大的成功机会。
我喜欢和它一起工作。如果我玩它几个小时,这是我生命中最糟糕的时期,我肯定不会将它用于客户。
我可以继续,但这些是我头脑中的主要原因。
答案 2 :(得分:2)
除了查看框架之外,在评估风险时,您还需要考虑很多关于您自己(以及任何其他团队成员)的事情:
如果框架是一个新的,不成熟的“前沿”框架,您是否愿意并且能够调试它并修复或解决您遇到的任何问题?
如果有一个小型社区,您将不得不自己进行大量的调试和诊断。你有时间这样做,仍然可以满足你的最后期限吗?
您是否亲自查看过该框架,以确定它有多好,或者您是否愿意依赖别人对此的评价?你为什么相信他们的判断?
为什么要使用此而不是“官方认可的Java EE框架”?这是一个实用的理由,还是只是想尝试一些新的东西?
如果框架问题导致您错过最后期限或交付不良产品,您将如何与老板或客户讨论?
答案 3 :(得分:1)
您引用的所有迹象都可能是您选择框架的坏消息。
我要寻找的另一件事是在亚马逊等地提供的书籍。如果有可用的文档,那就意味着作者相信它具有牵引力,您将能够找到了解它的用户。
我能想到的唯一的拯救恩典是相对成熟。如果框架或开源组件成熟,那么它有可能按照书面形式完成工作,并且不需要进一步扩展。
仍然应该有一个带有一些活动证据的bug跟踪器,因为没有软件没有bug(除了我的)。但在这种情况下,它不一定是一个请求的推动者。