考虑到web2py的规模和缺乏资源和企业支持,您是否认为学习web2py作为我唯一了解的Web开发框架是明智的选择?我正在考虑学习Ruby on Rails或web2py,以便为学校项目创建一个网站。
考虑到web2py的规模和缺乏资源和企业支持,您是否认为学习web2py作为我唯一了解的Web开发框架是明智的选择?我正在考虑学习Ruby on Rails或web2py,以便为学校项目创建一个网站。
web2py在竞争对手产品中的市场份额较小,但它也要年轻得多。我知道至少13家咨询公司提供web2py支持。不管怎样,我相信web2py比其他系统更容易使用,因此您需要的支持比您想象的要少。大多数当前用户通过web2py google小组获得支持,在那里您可以找到29781条消息,并且几乎所有问题都在24小时内得到了贡献者之一的回答。
学习不当。福尔摩斯解释道:
“你瞧,”他解释说,“我认为一个人的大脑最初就像一个空无一物的小阁楼,你必须用你选择的任何家具来填充它。愚者会把他遇到的所有木材都拿进来,这样对他有用的知识就被挤出去了,或者最好是跟其他许多东西混在一起,以至于他很难找到它。现在,熟练的工匠非常小心地考虑他将要接纳他的内容。他只会拥有那些可以帮助他完成工作的工具,但其中有很多种类,并且全部都排列得井井有条。认为这个小房间拥有弹性墙壁,可以扩张到任何程度,是一个错误。请相信,对于每增加一份知识,总有一些你之前所知道的东西被遗忘了。因此,不要让无用的事实挤出有用的事实是至关重要的。”
我确定我不是唯一一个在许多糟糕且文档不全的Python Web框架中浪费了大量时间,试图找到一个可用的框架。如果我用Ruby或PHP编程,我可能已经把那些时间用来编写Web应用程序了。这就是在Python中进行Web开发的诅咒。
以下相关问题可能会有所帮助:
图表中未包括13,000多个被标记为[php]的问题,但我们不要去那里。
需要明确的是,虽然选择一个Python Web开发框架可能会让人感到困惑,但一旦你决定了一个框架,你就可以用Python编程。这是使用Python进行Web开发的福音。这真的很好。
我的建议是不要接受任何缺乏完善文档的框架。有很多选择,没有必要妥协于质量差、文档不全的框架。如果没有找到符合要求的框架,那么最简单的框架,也就是那些没有任何魔法的框架,是工作愉快且容易学习的。
web2py可能年轻,但邮件列表每月有约2000条消息,与Django相似,比Turbogears要多得多。我通常能在几个小时内得到我的问题的答案。
还有一个出色的在线书籍,但我发现最好的信息来源是邮件列表。
我已经使用了RoR、Django、Turbogears和web2py,发现web2py最具生产力。
学习很好。
学习一些东西(最终会被遗忘)并不会有任何损失。网页开发的基本技能(HTML、CSS、URL解析、GET和POST请求方法)永远不会改变。
框架来了又去。尽可能多地学习它们,学会如何管理你的学习,这样你就可以(a)首先掌握重要的东西,(b)在学习新框架时抛弃其他框架的内容。
每个框架都有自己的偏见(或关注点)。一旦你明白了这一点,你就可以在没有所有“比较和对比”阻碍的情况下使用它们。一旦你学会了web2py,那么在学习Django时,你必须小心谨慎,从零开始学习,不要将旧概念翻译到新概念中。
Web2py是一个很好的学习工具。如果要部署到服务器上,请确保它支持wsgi。有时候,php也是一种可行的选择,因为你知道它几乎在任何地方都得到了支持。
问问自己从这个经验中想要得到什么。比如说,是更重要地尽快构建和运行应用程序,还是想学习有关Web堆栈架构的知识?
如果你只是想要结果,那么显然,如果你坚持使用更常用的框架,你将有更多的代码和文档可以借鉴。如果你咬紧牙关接受Django的世界观,你可以非常快速地构建功能强大的应用程序。如果你能找到一些预制的可重复使用的Django应用程序来处理你的问题的一部分,它会更快。
但是,如果你想确保对HTTP请求处理到数据库访问和抽象再到表单生成和处理以及HTML模板化的所有请求周期的内容都有很好的理解,那么你最好选择一个最小的框架,它可以迫使你更多地思考架构,并且代码库足够小,你可以从头到尾阅读所有内容而不需要文档。在这种情况下,我建议深入探究并在WSGI库的基础上构建自己的框架(如果可以避免浏览器怪异性的话,你实际上不想浪费时间学习解决它们的复杂性)。一旦你构建了自己的框架,并看到了哪些地方变得复杂,以及权衡取舍在哪里,你就会处于一个很好的位置来判断其他框架,并决定是否有一个框架适合你的工作方式。
这可能看起来有些离题,但Paul Graham写的关于这个主题的文章《Python悖论》可能是我见过最好的: The Python Paradox。
换句话说,如果你想为我工作,我会在简历上注意到这种自由思考和实验,无论这项工作是商业、学术还是其他方面。而且我相信我不是唯一一个这样做的人。
我已经使用过Java EE和Django。Web2py的学习曲线非常快!这太不可思议了!我用Java开发需要三天的东西,现在用web2py可以很快地完成。当然,Web2py没有像RoR那样丰富的插件,但毫无疑问,我们可以使用web2py快速完成这些事情。因此,这是一个很好的学习机会=)
我同意S.Lott的观点:“学习一些(最终会消失的东西)根本不算损失。”
没错,但是让我建议一下,即使是学术项目也应该尽可能得到更好的支持,否则学习和教授一些不受良好支持、调试、稳定等方面影响的东西可能会非常令人沮丧和浪费时间。你花费的时间,以及可能是你的听众/学生,都应该在某种程度上考虑未来...
举个例子,看看turbogears。