如何选择一个Web框架

2009年9月21日由亚历 留下回复»


我怎么能知道什么是我的项目最好的Web框架?

今天,几乎所有的开发项目作为产品的一部分,网络接口。 这不是一个挑战,如果我们有一项已经与这些项目工作小组。 但会发生什么,如果计算机没有在Web应用开发经验?

例如,来自企业的世界,在与Swing的图形用户界面框架等作出大中型客户系统的经验。

起初可能低估了网络世界的思维,一切都是孩子们的游戏,任何人都可以通过聘请网页设计师我们的问题将得到解决的。 但显然你错了,一旦他开始研究的基础是,如不小于会话处理,AJAX,CSS​​,XSS,SQL - Inyection概念之一必须了解,然后才能进行任何系统的数量。

一旦我们完成研究这些概念,我们又感到安全,开始只有这样,我们的问题开始。 在这一点上是当大问题是什么Web框架(FW)是一个我为我的项目中使用?

一年前这几年将是一个问题,答案可能会是,如果我们的工作在Java中, 使用Struts。 但今天的改变,因为仅适用于页面的Java http://java-source.net/open-source/web-frameworks可以找到40多个框架,在其中一个我用的是不是。 更何况,如果我们考虑诸如Ruby,Python,PHP和。NET不同的编程语言FW。 那么如何才能回答这样的问题呢?

然后,我将定义是什么恕我直言,我来回答这个问题,可以帮助其他面临类似情况的因素。 我们假设我们有一个在特定的语言专业的开发团队,我们转换为Web应用程序开发。 所提出的一些观点不作例如,为一个独立的开发人员或放在一起,如果你是从头开始团队意识。 当工作与已形成的考虑因素不是技术,可以直接决定了世界上最好的FW,不是最好的选择,这使得邻居的解决方案并不总是正确的解决方案依赖于一个团队一。 因此,我们必须与我们的同行小心你的好意,我们建议“FW”,他们可能不知道的上下文中使用。 最后,我们应该实事求是,知道可能的选择过程结束多个FW,可用于定义和最终将是一个具有不确定性程度的偏好问题。 最终的答案后,才知道是在第一个项目先进,可以犯错误,必须重新考虑其决定。 基于这个原因,重要的是要选择的第一个非关键项目的经验。

该点然后我不会任命一位特别的顺序。

点时要考虑选择FW
电脑知识

关键是要评估地方队与舒适的工作。 也就是说如果我有所有的Java程序员可能最好找这样一个Java FW球队能很快学会了FW,而不必浪费时间学习另一种语言的细节。 另一方面FW有很好的几乎所有的语言因此它不应该成为问题,解决这个问题。 此规则的例外是,如果我们与快船如COBOL或过时的语言工作。 但在这里,我们所面临的主要问题是一个系统的技术升级。

难道我们需要的东西,只能解决或需要提交的所有层上工作?

重要的是要确定什么样的自由度,当我们选择。 也就是说,这是一宗个案,我们武装的系统,而我们只应给予或Web演示文稿是一个案例中,我们可以选择如何提交表单数据依然存在。 根据这一点,我们同意使用的东西,我们所有的要求,解决方案或单纯强调我们需要的是解决Web演示文稿。 在此基础上我们可以划分FW分为两组,因此不排除我们的利益了。 该组是:

完整的堆栈框架

是一个完整的从表现层到持久层解决方案的信息。 较新的是基于MVC模式。 其中一些例子:

  • 在红宝石和你的Rails可以说是一时的明星
  • Groovy的Grails的
  • PHP的CakePHP
  • Spring Roo的和Java SEAM
  • Python的Django的

详细列举每个我们不打算简单地限制自己,评论,大多数都是以行为准则原则(约定优于配置),干(不要重复自己),并且根据它的基本组成包括一个模板处理器设计视图(生成动态页面),调度员,继某些公约HttpRequests决定派遣服务请求。 要管理的数据有一个ORM框架,它提供了动态查询建筑和一个功能,简化了作业号。

个展:

这些是都是为了只表示层的。

这种类型的例子有:

  • GWT -谷歌的Web Tookit,可产生100%的JavaScript,但就是在Java编程
  • JSF:Java Server Faces的是官方的Java组件框架
  • ASP.NET:那就是在微软的选择

支持(社会,制造商,书籍,认证,未来前景)

重要的一点,特别是在OS项目,就是看周围的框架社区使用。 重要的是要调查是否有公司投资于产品开发资源,或简单,仅由社区驱动。 在后一种情况是,当“大小不事”,并根据不同的社会支持它的支持,我们要看的大小。 因为这是最好的框架搜索页的报告中,有许多错误是,如何快速得到解决,有多少开发人员纠正门票。 在此之后同一行有怎么看常新的版本出来,如果​​有设计,产生一个稳定的版本或版本版本只出来时的新功能。 由于我们要学会使用该框架必须研究这一文件的质量,​​看那么多书出版(如亚马逊)是关于这个问题,如果你提供一些认证和/或培训类。

成功的项目的存在

由于我们的目的是使用一种产品,最终将进入生产FW可能会不希望被豚鼠。 如果FW是有点严重,那么你应该有自己的网站上指的是与此实施的系统。 不是一个坏主意,如果可能看看这些看看,看看他们如何工作。 这将是伟大的发现了这些项目的一个博客中,他们讨论了在系统开发经验。

与现有平台

如果该项目是一个复杂的生态系统的一部分,那么我们就必须考虑到一体化具有FW的可能性,如果这些都在我们的产品结构可以接受的。 例如,如果我们有互动的一个系统,JEE重要的是要建立设施来调用EJB服务给我的FW。 当然它总是有可能开发一个层,它是为互动负责,但如果它本身支持FW不仅节省劳力,但重复使用的东西是测试和其他人使用。

学习曲线

今天的一点是误导,因为现代FW有一个非常快速的学习曲线最初但要达到专家水平,是非常时期的任何其他框架费时。 如果再加上大多数FW与质量低劣的文件操作系统,有可能是没有本地的支持,使我们不得不旅行(至少在南方像我)许多英里。 这使得设备的学习能力是一个重要因素。 在某些情况下得到解决的一个问题,有必要研究FW的源代码。 如果我们侥幸的预算使我们能够培养团队和/或支持合同那就不要怀疑。 头痛和时间肯定能赢得它。

测试,检验和测试

不可避免的是,为了确定FW将分配资源并执行之前达成一项可接受的结论和合理一些测试。 这是没有必要证明一切放心,我们使用的是最好的。 当我们评估记住,我们正在寻找的情况下,我们应该用正确的和最佳的整体。 有了一个良好的初步分析,我们可能不应该多试两三FW。 对于测试,以尽可能可比我们应该选择一个项目,实施电子商务型,我们将评估FW ...

我们如何比较FW?

对于在FW我用了一个比较有帮助我的时间来评估,并可能对你也有帮助的工具。 该工具是一个简单的表,反映了大部分观点。 在此表中,我们考虑FW给每一个得分点,我们将有一个最大允许和所有点最高金额将增加至100。 通过定义不同的最高点是要根据我们的评估范围内的项目优先。 例如,如果我们正处在一个情况下,我们对现有系统的数量与我们互动一定的能力,整合FW是最重要的要点之一,评估,而如果我们不必与其它系统,我们有时间霸并已形成了小的网络体验小组随后的学习曲线是我们选择的转折点。

为了澄清这一点,让我们看一个例子:

最大

FW 1

FW 2

FW 3

FW 4

支持

25

15

10

20

5

成功的项目

10

5

10

10

0

集成

50

25

40

35

45

学习曲线

15

15

10

10

5

总计:

100

60

70

75

55

该指数可以使上表是我们测试的FW2和FW4定义这两个就是我们的使用。 通过学习我们进行redijimos至少一半的金额FW学习有一个表,证明我们的选择。

显然,你越行添加到该表将有更多的信息来证明的选择。

只要澄清的情况下,最大分配的例子,你应该定义你自己根据自己的需要。

总之...

总之,当选择FW必须遵循三个步骤:

  1. 首先,我们评估了设备的知识,并确定你想要什么,如果你要FW全栈单或介绍。

  2. 一旦我们知道了这一点,喜欢的语言可以搜索的FW子集来评价。 为方便评价一个形式在上一节看到。

  3. 最后表现最好的排名FW这与在FW每一个项目实施完成测试。

毕竟这一点,我们知道FW使用。 这似乎是一个大量的工作,不是吗? 如果是安全的是,但它是唯一的方法作出决定最大限度地减少决策失误的风险... ...,当一个公司的技术决策取决于我们是好的,有工具来证明我们的决定,特别是确保我们成功工作。

Blogger帖子 DIGG 书签交易 谷歌阅读器 分享
广告

发表评论

垃圾邮件保护WP验证码-免费