更好的网络框架? [关闭]

Posted

技术标签:

【中文标题】更好的网络框架? [关闭]【英文标题】:Better web framework? [closed] 【发布时间】:2010-01-23 13:00:04 【问题描述】:

我来自桌面编程背景。我想认真地潜入网络编程领域。我环顾四周,我认为使用完善的 Web 框架将是可行的方法。就我所见,Django 和 Ruby on Rails 非常受欢迎。

所以我只是想知道这些或任何其他对我来说是一个不错的选择。优雅、健壮、可扩展、易于部署和维护且功能齐全的东西。我目前倾向于 Django,因为它基于 Python,Python 是一种非常流行且功能强大的语言,但我只是想知道 RoR 自身的发展方向可能使其成为更好的选择?从某种意义上说,这更像是 web 2.0。只是想获得一些额外的意见。

【问题讨论】:

对,因为我们没有足够的 django vs rails 问题:) 【参考方案1】:

.. 优雅健壮可扩展易于部署维护功能齐全 .. python 非常流行强大的语言 .. 更像是 web 2.0 在某种意义上。

这些都是空洞的、主观的流行语。各种框架之间的差异不是您可以衡量的;正是他们的风格与众不同。没有人可以替你做决定。试一试你自己,然后选择你觉得合适的。

【讨论】:

【参考方案2】:

我能给出的唯一建议是在每一个中构建一些重要的东西并自己决定。如果你在这里问,你只会得到一堆各种技术的拥护者,告诉你他们的东西比其他任何东西都好。

例如,我会告诉你,我将 ASP.NET 用于我可以选择的所有内容,这就是为什么我能够发布 Twiddla、Blogabond、S3stat 等网站的原因。在几个月内*,而拥有整个 php 开发团队的 VC 支持的公司花费数年时间构建类似的东西。

在这篇文章下面,你会注意到一个 Rails 人说的完全一样。所以就像我说的,尝试一些技术,看看哪种技术最适合你构建的东西。

* 分别为 2 个月、3 个月和 1 周

【讨论】:

【参考方案3】:

考虑:

部署:Django 和 Rails 现在都有很好的部署选项 - mod_wsgi 用于 Apache 上的 Django 部署,Phusion Passenger 用于 Rails 部署。如果您想在 Google App Engine 上部署,您可以使用 Rails(使用 AppEngine for Java 和 JRuby),但 Python 和 Django 会更容易。另一方面,请查看 Heroku 以获取类似的基于“云”的托管。如果您有共享主机,请查看他们允许您使用的内容。我的共享托管公司让我使用 Rails,这很酷。 包和库:Python 和 Ruby 以及 Django 和 Rails 都有广泛的插件和库,可以让你做有趣的工作。如果您正在构建需要特定库的东西,您可能会发现库是一种比框架更有用的选择方式。 尝试语言。 Python 和 Ruby 都是很棒的语言。我更喜欢 Ruby(我使用 Rails),但请记住,框架实际上与其说是关于框架,不如说是关于语言。因此,如果您发现自己对编程语言有强烈的看法,请务必尝试一下。 查看等效示例代码 - 例如,查看类似博客引擎的东西 - Django 有 Byteflow,Rails 有 Mephisto 查看其他框架,包括使用 Ruby 和 Python 以外的语言的框架。看看 Merb、Lift、Seaside、Cake、Grails 等等。

请记住:技能、想象力和创造力比框架选择更重要。

【讨论】:

【参考方案4】:

您应该更多地研究语言而不是框架!如果您更喜欢 Python 而不是 Ruby,请使用 Django。 Bur 如果您更喜欢 Ruby,请查看 RoR...

它们都是很棒的框架,但它们“只是”框架!最后,我认为您选择的框架不会对您的 Web 应用程序的最终用户产生太大影响!

【讨论】:

不知道为什么这被否决了 - 你是对的。不管一个框架有多“健壮”或者它可以自动生成多少代码,你仍然会用那种语言编写很多代码。如果你不喜欢这种语言,你就不会喜欢这个框架。此外,您最终可能需要在框架之外编写代码,并且还必须依赖该语言的其他库。【参考方案5】:

我使用 django 是因为它的可扩展性和支持以及非常好的文档。 刚开始的时候有点摸索,后来感觉很好。

模板引擎非常强大,这意味着您也可以制作漂亮的javascript/ajax,因此web2.0部分功能非常好。

虽然我不得不承认我在 RoR 方面没有太多经验。这看起来也很不错。

【讨论】:

【参考方案6】:

您应该知道的第一件事是框架或开发语言只是实现您的业务解决方案的工具。所以不要坚持任何框架或工具!不同的工具或框架具有不同的优势。他们都不是最好的。这一切都取决于情况。因此,在您开始开发系统之前,请进行足够的调查并写下业务目标,然后选择最让您满意的框架。在指定技术之上设计应用程序会将您从程序员转变为软件架构构建者。

【讨论】:

【参考方案7】:

IMO、Ruby 和 Rails 在工具和自动化方面普遍优于 Python 和 Django 以及大多数其他平台。这对整体生产力以及部署和维护有很大影响。 RubyGems 包管理、Rake 任务自动化、Active Record 迁移和用于部署的 Capistrano 等功能让所有这些小工作变得快速、轻松且可重复。

几年前我尝试过 Django 和 Python,并且很喜欢它们的很多东西,但是对于我的口味来说,手动摆弄和配置太多了。例如,Python 包管理是有限的(没有卸载功能!),并且没有被流行的库普遍支持。

Django 本身并没有强加一个标准的应用程序结构,这意味着每个人都必须弄清楚并手动设置自己的布局。这也会导致大量不必要的设置和维护工作。

如果我必须使用 Python 进行 Web 开发,我可能会使用 TurboGears 框架,它提供了标准的应用程序结构,以及更多的支持工具。

【讨论】:

以上是关于更好的网络框架? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java社交网络引擎(框架/平台)列表[关闭]

在 iOS 应用程序中管理网络调用的库/框架 [关闭]

JavaEE vs PHP - 为啥这么多人认为 Java 更好? [关闭]

还在用gtest?更好用的测试框架介绍

开源社交网络 [关闭]

伪分布式网络爬虫框架的设计与自定义实现