design - 基于代理/actor的并行设计设计模式

  显示原文与译文双语对照的内容

最近我进入了支持 actor/agent/shared 无架构的替代语言- IE 。 Scala,clojure等( clojure也支持共享状态) 。

到目前为止,我所阅读的大部分文档都是围绕引入级别的。 我正在寻找的是沿着四人组的更高级文档,但不共享任何内容。

为什么这有助于理解设计思维的变化。 简单的例子很简单,但是在实际的java应用程序( 单线螺纹) 中,你可以拥有具有复杂关系的1000个成员的对象图。 但是使用基于代理的并发开发,它引入了一整套新的概念,以便在设计大型系统时理解。 IE 。代理粒度- 一个代理管理多少状态- 对性能的影响等等,或者是它们将共享状态对象图映射到基于代理的系统的好模式。 关于将域模型映射到设计的技巧。 讨论的不是技术,而是更多关于如何在设计( 真实世界"复杂"示例将是很棒的) 中使用技术的更多信息。

时间: 原作者:

即使我不能给出任何提供设计模式的真实世界示例,也有一些地方可以开始。

首先,让你的头脑正确环绕概念。 一本书帮助你做到这一点是使可靠的分布式系统出现在软件错误由Erlang大师 Joe Armstrong在一个非常容易访问的方式解释并发定向程序。 这实际上是一个 Ph.D. 论文,但不要让你害怕。 它比大多数常见的课本更容易阅读,也能享受到交易。

查看实际系统通常意味着你必须学习太多的实际语言,你只需要对它的进行评估就可以了。 对于 Erlang,文档提供了设计方法和行为( 用于设计模式库的Erlang解析器) 。 这将说明这里设置中最常用的设计模式。 这些已经被证明是有效的构建大规模系统,换句话说,的代码( 与其他语言( 如 Java )的因子 4到 10之间的比较) 和milloins的并发进程运行在一个机器的分布式集群的一个机器上。 最近实时系统的一个例子是 Facebook聊天

对于其他框架我无法真正帮助你我害怕。

"演员"本身就是并发编程( 异步消息队列加上执行上下文来处理它)的统一模式,但是有许多设计模式可以帮助指定agent-based系统的各个方面或者元素。 许多最常见的内容可以在并发模式的wikipedia文章中找到。 一些亮点:

如果你还没有遇到它,Akka 可能对你感兴趣,--是一个在JVM上运行的"纯"event-driven actor框架。

原作者:

我在这里问了一个类似的问题 ,它有一些原因答案可能帮助。 我正在仔细查看你的内容。我还没有找到真正帮助我的东西,但是我非常积极地寻找。

我认为mind-shift是迈向并发架构和语言的最大障碍,直到有突破性的开发人员将坚持学习MS风格范例。 为了使它真正成为主流,它需要在学校中找到它的方式,并在 C# 和VB上进行教学。

我对 2080程序员问题的回答是"同时"。

原作者:
...