Smalltalk 从哪里开始学习海边的内部结构?

Smalltalk 从哪里开始学习海边的内部结构?,smalltalk,seaside,Smalltalk,Seaside,我最近非常喜欢Seaside web框架。我想开始挖掘源代码,找出它是如何工作的。不幸的是,有很多课程,我不知道从哪里开始!有人知道我应该先了解哪些课程吗?我假设某个地方有一个路由类,我应该从它开始…我假设你读过海边的书 如果您想更深入地了解,只需查看源代码,从类WAComponent和WARenderCanvas+WAHtmlCanvas开始。路由类是WAAdmin,意思是“这是注册不同海滨应用程序的地方”。有几个部分很有趣。从WARenderCanvas开始,了解生成html的dsl是如何

我最近非常喜欢Seaside web框架。我想开始挖掘源代码,找出它是如何工作的。不幸的是,有很多课程,我不知道从哪里开始!有人知道我应该先了解哪些课程吗?我假设某个地方有一个路由类,我应该从它开始…

我假设你读过海边的书


如果您想更深入地了解,只需查看源代码,从类WAComponent和WARenderCanvas+WAHtmlCanvas开始。路由类是WAAdmin,意思是“这是注册不同海滨应用程序的地方”。

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


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

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

  • Canvas是Seaside Core渲染类别中Warender的具体实现
  • 会话/应用程序都是Seaside核心RequestHandling类别中WARequestHandler的具体实现
  • 组件/任务都是Seaside Core Presenters类别中WAPainter的实现
实际上有两种方法来研究这个框架。要么从你感兴趣的特定事物(比如WAComponent)开始,然后逐步升级到超类。然后重复Stephan提到的其他课程

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

WAServerAdapter的子类构成了Seaside中请求处理的起点,在Seaside中,来自特定web框架的请求被转换为Seaside请求并发送给适当的处理程序。回调也是非常重要的,在Seaside核心回调中


如果您了解Seaside Core中的所有内容,那么您基本上了解了框架在高级别上的工作方式。一旦您对基本的核心概念有了广泛的理解,您就可以通过更详细地检查具体的实现来深入了解您感兴趣的每个领域。但请记住,Seaside Core中的所有内容都是子类,并连接在一起以扩展框架。

是的!我读过那本书。我对海滨的内部结构很好奇。谢谢你的信息!