2

我打算开始一个中型 Web 项目,你会推荐什么语言 + 框架?我知道Java和Python。我正在寻找简单的东西。

App Engine 是一个不错的选择吗?我喜欢整体的简单性和免费托管,但我担心数据存储(使其与标准 SQL 解决方案同样快有多困难?+ 我需要全文搜索 + 我需要通过几个参数过滤对象)。

带有条纹的 Java 怎么样?我是否应该使用除 Stripes 之外的其他框架(例如用于数据库)。

更新: 感谢您的建议,我最终决定将 Django 与 Eclipse/PyDev 一起用作 IDE。Python/Django 简单而优雅,被广泛使用并且有很好的文档。一个小缺点是,也许我必须购买一个 VPS,但将项目移植到 App Engine 上应该不是很难,这在某种程度上是免费的。

4

9 回答 9

4

既然你提到了 python,我建议你研究一下Django。您可能需要更加努力地寻找托管选项,但是......

于 2010-08-06T21:33:10.377 回答
3

App Engine 是一个不错的选择吗?我喜欢整体的简单性和免费托管,但我担心数据存储(使其与标准 SQL 解决方案同样快有多困难?+ 我需要全文搜索 + 我需要通过几个参数过滤对象)。

应用引擎很好。它支持 Pyhton 或 Java(有一些限制),它为小需求(很少,至少对于 Java)提供免费托管。但我不希望与专用服务器完全相同的性能,云是关于可扩展性,而不是性能(你不会总是获得单次点击的最快响应时间;但是,GAE 将处理大量的并发点击而无需任何当您的服务器着火时出现问题)。但是这种可扩展性并非没有成本,如果您不需要它,开发权衡可能会太麻烦。还要注意,它不支持开箱即用的全文搜索(真是讽刺),您将不得不使用额外的工具。

带有条纹的 Java 怎么样?我是否应该使用除 Stripes 之外的其他框架(例如用于数据库)。

我非常喜欢条纹。我喜欢它的约定优于配置方法,它是一个非常优雅和简单的框架(但仍然很强大)。绝对不是一个糟糕的选择。对于持久性,如果您选择 GAE,则必须使用 JPA 或 JDO。如果您不这样做,则由您自行决定(尽管我会选择 JPA)。

也可以看看

于 2010-08-06T22:40:32.260 回答
2

生活中有很多事情,这取决于你的目标是什么。如果您打算学习用于企业环境的 Web 框架,请选择 Java 解决方案。如果没有,不要。Python 在几乎所有方面肯定更优雅,通常也更有趣。

至于使用哪个框架,django最受关注,正如这里提出的问题数量所证明的那样。我的理解是它也很好。不过,它最适合类似 CMS 的网站 - 至少这就是它的来源和优化的目的。您还可以看看其中一种更简单、更灵活的方法,例如相对较新的flask. 所有这些都是令人愉快的,尽管它们可能并不都具有 AppEngine 上的所有功能。

于 2010-08-06T23:06:18.990 回答
1

当您专门针对 GAE 时,KayTipfy是出色的 Python 框架选择。Kay 模仿并类似于 Django,但更适合 GAE。

于 2010-08-08T20:27:24.297 回答
0

我不认为数据存储有问题。许多人会因为想要一个标准的关系数据库而立即拒绝它;如果您愿意考虑一般的数据存储,那么我怀疑您会对 GAE 数据存储有任何问题。就个人而言,我非常喜欢它。

可能会绊倒您的是操作限制。例如,您是否知道 HTTP 请求必须在 10 秒内完成?

如果您完成一个项目的 50%,然后发现您正在使用的 Web 服务有时需要 15 秒才能响应,该怎么办?现在你是吐司。你不能支付额外的费用来提高限制或类似的东西。

所以,我的观点是,你必须非常小心地接近 GAE。在开始使用之前了解这些限制并确保它们不会成为问题。

于 2010-08-06T22:06:15.683 回答
0

去年,我在 GAE(使用 Python)上构建了几个应用程序。您可以轻松地快速启动并运行应用程序,这是无可比拟的。不要仅凭这一点就打折价值。

虽然您可能还不了解数据存储,但它的文档非常完善,并且有大量资源(包括这个资源)可以帮助您解决可能遇到的任何问题。

于 2010-08-07T15:10:20.667 回答
0

这取决于你的个性。这个问题没有正确答案,就像“我应该开什么样的车?”一样没有正确答案。

如果你很有艺术感并且认为代码应该很漂亮,那么请使用 Rails。

如果你是真正的黑客类型,我想你会发现像 Rails 或 Django 这样的全栈框架并不令人满意。这些框架是“自以为是”的软件,这意味着您必须真正接受作者的愿景才能最高效。

Python 世界中 Web 开发的美妙之处在于有几个很棒的最小框架。我用过几个,包括 web.py、GAE 的 webapp 和cherrypy。这些框架就像“这是一个请求,给我一个字符串来服务”。它是生的。不要认为你会被困在 Python 连接字符串中,上帝不会。还有几个优秀的 Python 模板库。我个人可以推荐 Cheetah,但 Mako 看起来也不错。

于 2010-08-06T23:26:50.553 回答
0

Google App Engine + GWT 和你有一个非常强大的组合来开发 Web 应用程序。数据存储非常快,到目前为止,它对我来说已经很好地完成了这项工作。

在我的项目中,我不得不对我的数据库模型进行大量重新设计,因为它是为传统的关系数据库制作的,并且有些事情(直接)无法通过数据存储实现。

GWT 的学习曲线相当适中,但它可以很好地完成工作。gui 代码很容易上手,但异步的思维方式才是最难的部分。

至于搜索,我认为框架不支持它。可以对参数进行过滤。

GAE 有一些限制,您应该在将所有鸡蛋放入该篮子之前考虑这些限制。如果 GAE 的限制成为问题,GAE 使用 J2EE 分发标准这一事实使得应用程序很容易迁移到专用服务器。实际上,我只认为您必须重构进行查询和存储数据的代码部分(不应超过 100 行)。

于 2010-08-06T23:31:44.313 回答
0

我一直在使用 App Engine,到目前为止,DataStore 相当快……与 SQL 相比,有一点学习曲线,但我没有遇到真正的问题。我不确定全文搜索,但是过滤很简单,您只需一次运行每个过滤器。

class DBModel(db.Model):
    field1 = db.StringProperty()
    field2 = db.StringProperty()
    field3 = db.IntegerProperty()

GQLObj = DBModel.all().filter('field1 =', 'Foo')
GQLObj = GQLObj.filter('field2 =', 'Bar')

至于托管,我不确定您是否可以选择 GAE,但我知道您可以在 google 上注册自己的域。

于 2010-08-06T21:45:47.280 回答