【问题标题】:Dilemma: Should I learn Seaside or a Python framework?困境:我应该学习 Seaside 还是 Python 框架?
【发布时间】:2010-10-16 10:05:24
【问题描述】:

我知道这有点主观,但是,如果您设身处地为我着想您会将时间花在学习上吗?

我想编写一个网络应用程序,它可以安全地处理数量相对较少的人们的私人数据,几千条几 Kb 的记录,但需要保持安全的东西、地址、电话号码等。我已经完成了PHP/MYSQL 中的几个 web 项目并已决定,虽然它很方便,但我真的不喜欢 PHP,也不想在其中做另一个大型项目......

因此,我认为我最好学习一些新东西,因此我正在考虑 2 个选项(尽管如果您有建议,我会很乐意招待其他人)。我在决定时遇到了可怕的麻烦。他们看起来都很投入,所以与其只是跳进去,可能会浪费几天时间让他们两个都足够快地做出明智的选择,我想我会来这里征求一些意见。

所以我正在考虑的两个选项是......

PYTHON Web 框架之一 - TurboGears 似乎受到好评? 优点:在我尝试过的所有语言中,Python 是我最喜欢的。有很多框架可供选择,在过去的几年里,我已经完成了很多非 web python 编码。 缺点:有很多选择,所以很难选择!需要运行单个服务器进程?还是 mod_python?我不喜欢的声音。我喜欢的是进程分离和划分的概念,即如果一个用户帐户被盗用,攻击者就无法利用系统的其余部分。我不清楚python解决方案能在多大程度上处理这个问题。

把它写成一个 SEASIDE 应用程序 我猜它在一个 squeak 应用程序服务器上运行? Adv:据我所知,这将允许对用户进行良好的划分,因为每个人都有自己的小型私有 VM,独立于其他用户的所有系统,从安全性、扩展性和冗余的角度来看,这听起来很棒。 Dis:自从 15 年前的 Uni 以来,我没有做过任何 Smalltalk,那时我也从未深入研究过它。对于海边或使用它的许多项目,我看不到太多入门级帮助。我怀疑设置服务器以运行它是困难的,原因相同,即不是因为它本质上很难,而是因为在线帮助会更少,并且假设你已经对 Sqeak/Smalltalk 相当熟悉了。

那么,人们怎么看?我能否通过 Python 框架有效地获得我所追求的那种强大的分离和划分?在将用户彼此隔离方面,Seaside 是否和我想的一样好?在安全方面,我可能会更好吗,坚持使用我最熟悉的语言,这样我就不会犯任何 n00b 错误,或者 Seaside 是否值得扩展学习曲线并证明从长远来看更安全、更易于理解和可维护?归根结底,这不是一个生死攸关的决定,如果我从一个开始然后讨厌它,我总是可以保释,所以请没有人得到所有的神圣语言战争并开始燃烧任何人! ;-)

为收到的任何回复干杯,

罗杰 :)

【问题讨论】:

    标签: python frameworks seaside


    【解决方案1】:

    免责声明:我真的不喜欢 PHP,Python 很好,但在我的书中并没有接近 Smalltalk。但我是一个有偏见的 Smalltalker。关于 Seaside/Squeak 的一些答案:

    问:我猜哪个运行在 squeak 应用服务器上?

    Seaside 在几个不同的 Smalltalks 中运行(VW、Gemstone、Squeak 等)。 Smalltalk 国家并没有真正使用术语“应用服务器”。 :)

    问:据我所知,它可以很好地划分用户,因为每个人都有自己的小型私有 VM,独立于其他用户的所有系统,从安全性、扩展性和冗余的角度来看,这听起来很棒。

    是的,每个用户都有自己的 WASession,用户看到的所有 UI 组件都是该会话中服务器端的实例。因此,会话之间的状态共享是您必须明确执行的操作,通常通过 db。

    问:自 15 年前 Uni 以来,我没有做过任何 Smalltalk,那时我也从未深入研究过它。对于海边或使用它的那么多项目,我没有看到太多入门级帮助。

    Smalltalk 很容易上手,Seaside 上有完整的免费在线图书。

    问:我怀疑设置服务器以运行它是困难的,原因相同,不是因为它本身就很难,而是因为在线帮助会更少,并且假设你已经对 Sqeak/Smalltalk 相当熟悉了。

    不,不难。 :) 其实很琐碎。大量帮助 - Seaside ml、freenode 上的 IRC 等。

    问:Seaside 在将用户彼此隔离方面是否和我想的一样好?

    我会这么说的。

    问:在安全方面,我是否会更好,坚持使用我最熟悉的语言,这样我就不会犯任何 n00b 错误,或者 Seaside 是否值得扩展学习曲线并证明更安全、更易于理解和可以长期维护吗?

    支持 Seaside 恕我直言的杀手锏是真正的组件模型。它真的非常适合复杂的 UI 和维护。如果你害怕学习“不同的东西”(但我猜你甚至不会首先考虑它)那么我会警告你。但如果你不害怕,那么你可能会喜欢它。

    另外 - Squeak(或 VW)是一个非常棒的开发环境 - 调试实时 Seaside 会话,在调试器中更改代码并恢复等等。它很震撼。

    【讨论】:

      【解决方案2】:

      忘记mod_python,有WSGI

      我推荐Django。它可以在任何WSGI 服务器上运行,有很多可供选择。 mod_wsgi 用于 Apache,wsgiref - Python 中包含的参考实现和many moreGoogle App Engine 也是 WSGI,包括 Django。

      Django 非常受欢迎,它的社区正在迅速发展。

      【讨论】:

        【解决方案3】:

        我会说看看Django。它是一个 Python 框架,具有独立于托管操作系统的现成身份验证系统,这意味着妥协仅限于被妥协的应用程序(除非对托管 Python 进程的 Web 服务器进行一些利用)。

        【讨论】:

        • 我不认为 Django 直接解决了他的主要安全问题,这似乎会意外地在用户之间共享数据。虽然避免 sql 错误很好,但如果您有一个错误,您可以将数据显示给错误的用户。我无法想象如何在海边意外地做到这一点。也可以考虑 zope
        • 免责声明:我对 Seaside 一无所知。但是,在任何环境中都可能发生错误,所以我看不出分区如何防止任何错误——尤其是 SQL 错误(除非您将所有应用程序用户都作为数据库用户,恕我直言,这将是一个令人头疼的维护问题)。
        • 如果您使用 SQL 数据库,您是正确的。 Zope 和 seaside 不使用 SQL 数据库(除非您明确添加它们)。
        • @Harper,对我来说最大的吸引力在于 Sqeak 明智的是,我的应用程序的每个用户都可以拥有自己的独立实例,不会有主数据库,因为每个实例都有自己的私有数据存储 - 这将是与 Dabble DB 类似的模型。
        • @technicalboke:如果用户之间没有要共享的数据,我可以看到这非常有用。我开发或编写的应用程序需要共享数据。
        【解决方案4】:

        我自己也进入了海边,但在很多方面都很难上手,这与可以极快上手的 smalltalk 无关。挑战在于您确实受到保护,无法直接编写 html。

        我发现在大多数框架中,当您被困在如何做某事上时,总会有办法通过使用模板来解决它。您稍后可能会发现此解决方案会导致问题变得清晰,实际上框架中内置了更好的解决方案,但您能够从该问题继续前进,直到您学会了正确的方法。

        Seaside 没有模板,所以你没有那个拐杖。没有任何问题永远困扰着我,但有些问题比我希望的要花更长的时间来解决。这样做的另一面是你最终会更快地学习海滨方法,因为你不能作弊。

        如果您决定走海边路线,请不要害怕在 squeakfoundation.org 上发布到海边邮件列表。一开始我觉得它很吓人,因为那里的流量很低,你看不到很多初学者的问题,但那里的人愿意帮助初学者。

        还有少数海边开发人员会定期监控 stackoverflow。祝你好运。

        【讨论】:

        • 如果你很绝望,你总是可以这样做:“aCanvas html: '

          some raw html

          '”。 :)
        【解决方案5】:

        您看过 www.nagare.org 吗?

        一个专门用于网络应用而不是网站的框架。

        它基于 Seaside 概念,但您使用 Python 进行编程(nagare 部署了一个名为 Stackless Python 的 Python 发行版以使后续工作正常运行)。

        和 Seaside 一样,它会自动生成 HTML,但还可以根据需要使用模板。

        它最近由 http://www.net-ng.com/ 开源,他自己在 zope 和 plone 等优质网络框架中交付网络应用程序/网站方面拥有多年经验。

        我目前正在自己​​研究它是否符合我的需求,所以不能告诉你我对它的看法。如果你看,请给你的反馈。

        【讨论】:

        • 我最终决定学习web2py(是gluon)框架。它是一个基于 Python 的全栈 Web 应用程序框架和开发环境,到目前为止,我对它的体验相对较好,尽管它还很年轻,距离部署还有很长的路要走。它有一个基于 Web 浏览器的界面/IDE,你可以自己破解它,因为它都是用 python 编写的,它可以自动构建字节码应用程序包,你可以在任何其他 web2py 实例上分发和部署。它也很小。
        【解决方案6】:

        在考虑 Smalltalk Web 框架时,请同时查看 Aida/Web。 Aida 具有内置的安全性,包括用户/组/角色管理和强大的访问控制,这可以在您的情况下为您提供很多帮助。这样,您可以在一个图像中的用户级别实现足够安全的用户分离。但如果你真的想要,你也可以通过运行许多图像将它们分开。但这会增加维护,如果值得,我会三思而后行。

        【讨论】:

          【解决方案7】:

          我自己也在玩 Seaside,发现 this tutorial 在深入了解框架的功能方面非常宝贵。

          【讨论】:

          • 确实是目前最好的教程。
          【解决方案8】:

          我认为您已经总结了很多优点和缺点。 Seaside 设置起来并不难(我已经为各种项目安装了两次),但使用它肯定会影响你的工作方式——除了重新学习你可能会学习的语言必须调整很多关于你的工作流程的假设。

          这还取决于其他两个因素

          • 如果其他人最终会维护它,那么你会更幸运地找到 Python 程序员
          • 如果您要创建一个高度有状态的网站,Seaside 将胜过我见过的任何其他框架。

          【讨论】:

            【解决方案9】:

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-12-05
              • 2010-10-16
              • 1970-01-01
              • 2013-12-12
              • 2023-03-18
              • 2016-09-14
              • 1970-01-01
              相关资源
              最近更新 更多