【问题标题】:Where to start learning about Seaside internals?从哪里开始学习 Seaside 内部结构?
【发布时间】:2011-07-01 11:34:11
【问题描述】:

我最近非常迷恋 Seaside Web 框架。我想开始深入研究源代码以弄清楚它是如何工作的。不幸的是,有很多课程,我不知道从哪里开始!有谁知道我应该首先尝试了解哪些课程?我假设在某个地方我应该从某个路由类开始......

【问题讨论】:

    标签: smalltalk seaside


    【解决方案1】:

    Stephan 给出了很好的建议。基本上,如果您了解 Seaside 3.x 中的 Seaside-Core 包,您就会了解所有内容如何组合在一起:

    • Canvas 都是 Seaside-Core-Rendering 类别中 WARenderer 的特定实现
    • Session/Application 都是 Seaside-Core-RequestHandling 类别中 WARequestHandler 的特定实现
    • 组件/任务都是 Seaside-Core-Presenters 类别中 WAPainter 的实现

    实际上有两种方法可以接近研究框架。要么从您感兴趣的特定事物之一开始(例如 WAComponent),然后逐步向上推进超类。然后重复 Stephan 提到的其他每个课程。

    我建议另一种方式:从我在 Session-Core 中提到的三组抽象类开始。一起查看它们(结合 HTTP 和 Document 类)将使您了解通用概念以及它们如何组合在一起形成框架。您可以根据需要查看每个具体实现,以将通用概念与实际实现联系起来。

    WAServerAdaptor 的子类构成 Seaside 中请求处理的起点,其中来自特定 Web 框架的请求被转换为 Seaside 请求并分派给适当的处理程序。回调也很重要,在 Seaside-Core-Callbacks 中。

    如果您了解 Seaside-Core 中的所有内容,则您基本上了解该框架在高层次上是如何工作的。一旦您对基本核心概念有了广泛的了解,您就可以通过更详细地检查具体实现来深入了解您感兴趣的每个领域。但请记住,Seaside-Core 中的所有内容都旨在成为子类并插入在一起以扩展框架。

    【讨论】:

      【解决方案2】:

      我假设你已经读过Seaside-Book?:

      http://book.seaside.st/book

      如果您想深入了解,只需查看源代码,从 WAComponent 和 WARenderCanvas+WAHtmlCanvas 类开始。路由类在某种意义上是 WAAdmin,因为“这是注册不同 Seaside-apps 的地方”。

      【讨论】:

      • 是的!我读过那本书。我很好奇海滨的内部结构。感谢您的信息!
      【解决方案3】:

      有几个部分很有趣。从WARenderCanvas开始了解html生成dsl是如何构建的。 WAComponent 是具有call: 和answer: 的复合页面结构的起点。 WAApplication 代表一个 Seaside 应用程序,WASession 一个会话,WAServerAdapter 将 Seaside 框架连接到一个 http 服务器,WARequestHandler 处理 http 请求。 Grease 包处理 Smalltalk 方言之间的差异。

      您正在使用不同的浏览器(类和层次结构)、类注释以及发送者和实现者,不是吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-23
        • 1970-01-01
        • 2011-04-09
        • 2012-08-31
        • 1970-01-01
        相关资源
        最近更新 更多