Skip to content

Latest commit

 

History

History
46 lines (33 loc) · 2.65 KB

设计理念.md

File metadata and controls

46 lines (33 loc) · 2.65 KB

设计理念

Alan Kay 创造 "OOP(面向对象)" 一词时, 包含以下三个含义:

  1. 一切都是对象
  2. 对象通过消息进行沟通
  3. 对象解释它所理解的消息

Smalltalk 展示了如何实施这些想法。

许多编程语言都支持面向对象风格的编程, 它们通常关注第 1 点, 而对 2, 3 点缺少关注。

Dynatalk 致力于对象之间的交流, 尤其关心不同语言/环境之间的互操作。

Dynatalk 提供的通信对象被抽象化为 Agent, 它在行为上类似于 Actor 模型。

为何重新设计 Dynatalk

早先的 Dynatalk 存在以下问题:

  • 核心不够清晰(与 Roblox Agent 项目有很多耦合)
  • 基于 Agency 实现。Agency 在关注点分离上做得不理想。新版本的过度设计使项目变得复杂。

新的 Dynatalk 打算兼容 Agency(1.6.1) 的消息结构, 数据结构的兼容使得它们可以进行互操作。根据需要, 可以复用之前的资产。

一些设计决策

  • 消息管道: MQTT。 如有需要, 可以轻松替换为 RabbitMQ 、 ZeroMQ、进程间的消息机制...
  • 在探索性环境(Lively, Squeak, Snap!...)中构建早期原型

参考