【问题标题】:Is Seaside still a valid option?海边仍然是一个有效的选择吗?
【发布时间】:2011-03-13 01:34:28
【问题描述】:

Seaside just released 是即将推出的 3.0 版本的候选版本,所以它再次出现在我的雷达上。由于我目前正在考虑为未来的项目使用什么 Web 框架,我想知道这是否值得考虑。唉,Seaside 的大部分宣传都是从 07 年开始的,这对于网络来说可能是一两代人。所以我希望这里的社区可以回答一些问题

  1. 当您的大部分工作流程主要是在 HTML 中时,基于延续的框架非常棒,例如表单提交。对于今天的 JavaScript 繁重的环境,这似乎不再值得了。

  2. Squeak 是否能够处理合理的工作量?从这里和其他地方的其他问题来看,从长远来看,为了正确扩展另一个实现(Gemstone 等)可能会更好,但我不知道这有多远。会话似乎相当昂贵。

  3. 我知道比较很难,但是您在网上找到的大多数文章都将 Seaside 和 Rails 放在一起。 Scala/Lift、Clojure/Compojure 或 Erlang/Nitrogen 之类的组合会如何代替?

【问题讨论】:

    标签: smalltalk seaside


    【解决方案1】:

    我有问题一和二的答案:

    1. 这是真的。然而,自从 2.8 版以来,Seaside 不再是一个严格的“基于延续”的框架。 Seaside 仅在流模块中使用延续。从 Seaside 3.0 开始,流量模块甚至是可选的。另请注意,Seaside 自 2005 年以来就拥有强大的 Javascript 支持,这早于主流框架开始添加 Javascript 功能。今天 Seaside 内置了 JQuery 和 JQueryUI 支持。
    2. 当然,这取决于您在会话对象中存储的内容,但通常会话很小(小于 20 KiB)。在您的应用程序中使用内存分析器来确定确切的内存消耗。

    【讨论】:

      【解决方案2】:

      还有一本新的海边书:http://book.seaside.st/book

      【讨论】:

        【解决方案3】:

        我发现在具有良好抽象集的 Smalltalk IDE 中工作的生产力超过了工程主导项目中的所有其他问题。对于一家在单个服务器上(无需使用 SSD)拥有大约 100 个(同时,但不重)用户的小公司来说,它作为企业系统运行良好。自 2007 年以来:

        • Seaside 已证明能够从 html 工作流程切换到 javascript 工作流程;
        • Seaside 已移植到许多不同的 Smalltalks;
        • 已看到 Gemstone 发布 GLASS;

        性能大幅提升的新“cog”虚拟机已于数周前发布,并显示出提升性能的巨大希望。

        【讨论】:

          【解决方案4】:

          在 Smalltalk 中,除了 Seaside 之外,我们现在需要考虑三个 Web 框架

          两者后来都有效地解决了三类控制流,但不需要延续。两者都具有非常强大的 Ajax 集成,实际上您不再意识到您正在使用 Ajax。

          两者都可以很好地扩展内存消耗。 10.000 sessions spend 220MB 在 Aida/Web 中,即每个会话大约 23KB,可以进一步优化到每个会话仅 400B。这意味着,您不仅可以从单个 Smalltalk 映像运行许多网站,还可以运行许多网站。当然,当您真正需要时,您可以随时升级到负载平衡解决方案。根据我的经验,这是很少需要的。

          与 Ruby on Rails 相比,我的一位朋友抱怨说,他最初销售的每个网站都需要 50MB 内存。然后,他转向了 Aida/Web 解决方案,在该解决方案中,图像需要大约相同的 MB,但每个额外的网店站点只需几 KB。

          【讨论】:

          • 很高兴获得不同框架之间的比较数据......但这如何回答这个问题?
          • 对于扩展问题,我们需要更好地定义合理的工作量才能更好地回答。对于第一个问题,我想我是间接回答的。让我为第三个问题添加一个比较..
          • 嗯,我的意思是我想知道标准的合理工作量,即您必须从 Squeak 切换到性能更高的 Smalltalk 或引入集群等的点。
          • 每个会话 23KB,它很小。与 PHP 相比,如果使用 Zend 之类的框架,可能会消耗大量内存 ~1MB,但那是因为 PHP [序列化] 很糟糕。
          【解决方案5】:

          Seaside 的开发人员 Avi Bryant 表示,AJAX 几乎在所有情况下都能胜过延续。不过,您也可以使用 Seaside 和 AJAX 构建相当强大的应用程序。

          Web 应用程序的应用程序部分可以使用 Ajax 在其他框架中很好地完成。

          我认为目前缺少像 Cappuccino-for-Clamato 这样的 Seaside 集成 Smalltalk-to-Javascript 框架。我希望能够使用 Smalltalk 构建真正的 Javascript 应用程序。

          【讨论】:

            【解决方案6】:
            1. Javascript 非常棒,但能够在服务器端以简洁廉价的方式处理复杂的工作流程(Seaside 允许您这样做),从而防止它过时。经济和效用是在短期和长期内产生回报的东西。但是抽象地讲这个根本没有任何价值。您应该谈论一个精确的应用程序,并确定海边是否是您的一系列竞争优势的一部分,以形成一个摇摆不定的方程式(并知道为什么)。
            2. 关于使用 Seaside 扩展工作负载,简而言之,您可以像地狱一样扩展它(对于长答案,请在此处查看我的答案:Does Seaside scale?)。
            3. 太无法回答的人 :) rty 是你真正想问的问题的变体

            我认为你能做的最好的事情就是在一个周末做一个原型。

            如果你能在两天内做一个原型,你可以吸引一些注意力,并且你喜欢在海边做它的开发经验,那么你将为你的下一个事情打下基础。

            它只花费您的时间(您可以在亚马逊服务器上发布)。

            顺便说一句,本周我听说有一家初创公司手工制作原型(一切都是静态的,他们手动处理东西)。相当惊人,疯狂和便宜。当他们觉得他们对这个想法有足够的吸引力(他们有)时,他们实施了这个应用程序(无论使用什么技术,我相信对于海边的开发者来说都不是挑战)

            【讨论】:

              猜你喜欢
              • 2011-07-23
              • 2014-04-09
              • 2012-07-12
              • 1970-01-01
              • 2015-07-06
              • 2021-06-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多