适用于中型Web项目的语言(Java或Python)+框架?

时间:2010-08-06 21:31:08

标签: java python google-app-engine web-applications stripes

我打算开办一个中等规模的网络项目,你会推荐哪种语言+框架? 我了解Java和Python。我正在寻找简单的东西。

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

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

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

9 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

  

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

App Engine很不错。它支持Pyhton或Java(带有一些limitations),它为小的需求提供免费托管(很少见,至少对Java来说)。但我不希望与专用服务器完全相同的性能,云是关于可扩展性,而不是性能(你不会总是获得单次命中的最快响应时间;但是,GAE将处理大量的并发命中而没有任何你的服务器会着火时出现问题)。但是这种可扩展性并非没有成本,如果你不需要它,开发权衡可能会带来太多麻烦。并且还要注意它开箱即用({3}}(具有讽刺意味),你将不得不使用额外的工具。

  

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

我非常喜欢Stripes。我喜欢它在配置方法上的惯例,它是一个非常优雅和简单的框架(但仍然很强大)。绝对不是一个糟糕的选择。对于持久性,如果你去GAE,你将不得不使用JPA或JDO。如果你不这样做,则由你自行决定(虽然我会选择JPA)。

另见

答案 2 :(得分:2)

生活中的许多事情,这取决于你的目标是什么。如果您打算学习在企业环境中使用的Web框架,那么请选择Java解决方案。如果没有,不要。 Python当然更优雅,而且几乎在各方面都更有趣。

至于使用哪个框架,django拥有最多的思想共享,这可以通过这里提出的问题数量来证明。我的理解是它也很不错。它最适合类似于CMS的网站 - 至少它是它的来源以及它的优化内容。您可能还会看一个更简单,更灵活的问题,例如相对较新的flask。所有这些都很有趣,尽管它们可能都不具备AppEngine的所有功能。

答案 3 :(得分:1)

当您专门针对GAE时,

KayTipfy是优秀的Python框架选择。 Kay模仿Django并且类似于Django,但更适合GAE。

答案 4 :(得分: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我不确定你是否有选择,我知道你可以用谷歌注册自己的域名。

答案 5 :(得分:0)

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

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

如果您在项目中获得50%的费用,然后发现您正在使用的网络服务有时需要15秒才能响应,该怎么办?现在你敬酒。您无法支付额外费用以获得限制或类似的任何内容。

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

答案 6 :(得分:0)

这取决于你的个性。对于这个问题没有正确的答案,只有正确答案“我应该驾驶什么样的车?”

如果你是艺术家,并且相信代码应该很漂亮,请使用Rails。

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

Python世界中关于Web开发的精彩之处在于有几个很棒的最小框架。我使用了几个,包括web.py,GAE的webapp和cherrypy。这些框架就像“这是一个请求,给我一个字符串来提供服务。”这是原始的。不要以为你会陷入Python连接字符串中,但是,上帝没有。还有几个优秀的Python模板库。我个人可以推荐猎豹,但Mako也很好看。

答案 7 :(得分:0)

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

在我的项目中,我不得不对我的数据库模型进行大量的重新设计,因为它是为传统的关系数据库而设计的,而且数据存储可能无法(直接)实现。

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

至于搜索,我不认为它在框架中得到支持。可以在参数上进行过滤。

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

答案 8 :(得分:0)

去年我在GAE(使用Python)上构建了几个应用程序。很难轻松获得应用程序并快速运行。不要仅仅因此而忽略价值。

虽然您可能还不了解数据存储区,但它有很好的文档记录,并且有很多资源 - 包括这一点 - 可以帮助您解决可能遇到的任何问题。