许多 Web 应用程序框架 如今,几乎适用于所有语言。根据您的经验,他们的优点、缺点和独特之处是什么?假设有多种选择,哪些因素会让您优先考虑其中一个?

我最感兴趣的是人们对一个或多个框架的直接体验,而不是对现有所有框架的详尽比较。希望 SO 社区中的程序员在诸如此类的事情上有好的和坏的经历 导轨, 网络平台, 姜戈, 涡轮齿轮, , 或者 日本科学基金会. 。如果有人正在使用不太主流的框架之一,例如 海滨 或者 微块.

编程语言是一个明显的区别,但 Java 与 Ruby 的激烈战争不会太有趣,而且大多数框架似乎至少与他们选择的语言一样,在技术、工具和复杂性上进行了投资;所以我对以下事情更感兴趣:

  • 开发速度快、方便
  • 进入壁垒 - 无论是在开发人员培训方面还是在所需基础设施方面
  • 锁定 - 如果必须切换框架,您可以保留多少代码?
  • 灵活性 - 框架是否决定了您的架构或设计?(这到底是好事还是坏事,最好留待单独讨论。)
  • 性能、可扩展性和稳定性——显然取决于开发人员!
有帮助吗?

解决方案

我将简要介绍三个流行的 Python 框架的每个领域。这仅基于我的个人经历和观察。

开发速度快、方便

为了 涡轮齿轮, 塔架, , 和 姜戈, ,发展速度大致相当。作为现代框架,很容易开始新站点并开始组合页面。Python 的开发和调试速度非常快,我认为任何 Python 框架的开发时间都比我使用过的任何其他设置(包括 PHP、Perl、Embedded Perl 和 C#/ASP.Net)都要短。

进入壁垒 - 开发人员培训和基础设施

如果您了解 Python 并且愿意观看 20分钟视频教程, ,您可以从头开始创建一个相当完整的wiki类型站点。或者您可以步行通过 社交书签网站教程 30分钟内(包括安装)。这些是 TurboGears 示例,但其他两个框架也有几乎相同的教程。

这些框架开箱即用的测试/开发基础设施通常足以完成大多数站点。您可以随时更换组件以满足您的生产环境要求。例如,SQLite 非常适合设置模型和加载测试数据,但您需要在上线或存储大量数据之前安装 MySQL(例如)。

在所有情况下,要求都非常低,并且完全由您的可扩展性要求决定,而不是框架的任何特殊性。如果您熟悉某种模板语言或 ORM,它可能会直接插入。

锁定

这是所有框架的普遍问题。当您选择一种语言时,您就限制了代码重用选项。当您选择模板器时,您将再次被锁定(尽管一般来说,这比其他事情更容易更改)。ORM、数据库等也是如此。这些框架没有做任何具体的事情来帮助或阻碍锁定。

灵活性

这都是关于 MVC 和这三个框架的。正如你所说,这是一个非常不同的讨论!

性能、可扩展性和稳定性

好吧,如果您编写良好的代码,您的网站就会表现良好!同样,这是一个跨所有框架解决的问题 不同的开发技术 并且可能远远超出了这个答案的范围。

其他提示

Django 与 Struts。

开发速度快、方便。

Django - 在构建模型(在 Python 中)、定义管理映射(每个模型类 2-3 行代码)和创建 HTML 模板以使用默认的主从视图所需的时间内启动并运行。

Struts - 必须在 SQL 中定义数据库,然后在 iBatis 中定义 ORM 映射。然后使用操作类和 JSP 模板页面定义、测试和构建各种应用程序组件。哦,我需要定义 EJB 将数据从应用程序移动到 JSP。这一切都必须编译,我必须处理大量细节才能得到符合编译规则的东西。

进入壁垒 - 在开发人员培训和所需基础设施方面

在所有框架和语言中都是恒定的。这几乎是一个不关心的项目。没有一种语言或框架本质上是容易训练的。所有 Web 框架都有类似的基础设施要求。

锁定 - 如果必须切换框架,您可以保留多少代码?

这没有多大意义。如果您从 Tomcat 切换到任何 Tomcat 衍生版本,则可以保留大量 Java 代码。否则,当您切换框架时通常不会保留太多代码。

灵活性 - 框架是否决定了您的架构或设计?(这到底是好事还是坏事,最好留待单独讨论。)

事实上,这不是一个单独的讨论。这才是重点。框架决定了你的架构——这是一件好事。事实上,框架是您不必编写、测试、调试或支持的代码。您的应用程序被框架限制为经过验证的、可行的结构,这是一件好事。

性能、可扩展性和稳定性 - 显然取决于开发商!

性能是语言(而不是框架)。这是设计。在某种程度上,它也是实现配置。

可扩展性是框架(而不是语言)。这是设计和配置。

稳定性是全面的:操作系统、语言、框架、设计、编程、QA 和实施配置。

这是一个非常主观的问题..这是您应该添加到您的问题中的标签。正如一些评论已经建议的那样,您已经指定了一个非常好的指南;你到底在问什么?关于这种事情有十亿种意见,但绝对没有正确答案!

就我个人而言,我开始使用 .html,转向 php,尝试了 ruby​​(讨厌它),发现了 Python / DJango..从此以后一直很幸福。这是一条非常独特的道路(可能),所以你的里程可能会有所不同:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top