关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
3年前关闭。
Improve this question
最近我一直在研究支持 Actor /代理/无共享架构的替代语言 - 即。 scala、clojure 等(clojure 也支持共享状态)。
到目前为止,我阅读的大多数文档都集中在介绍级别。我正在寻找的是四个更高级的文档,但没有共享任何基础。
为什么 ?它有助于理解设计思维的变化。简单的示例很简单,但在现实世界的 Java 应用程序(单线程)中,您可以拥有具有 1000 个具有复杂关系的成员的对象图。但是随着基于代理的并发开发,它引入了一套全新的想法,以便在设计大型系统时理解。 IE。代理粒度 - 一个代理应该管理多少状态 - 对性能等的影响,或者是将共享状态对象图映射到基于代理的系统的良好模式。将域模型映射到设计的技巧。讨论不是关于技术,而是更多关于如何在设计中最好地使用技术(现实世界的“复杂”示例会很棒)。
请您参考如下方法:
即使我无法想出任何可以为您提供设计的真实世界示例
模式直线上升,有几个地方可以开始。
首先是让你的头脑正确地围绕这些概念。一本书帮助
你这样做是Making reliable distributed systems in the presence of software errors
由 Erlang Guru Joe Armstrong 编写,其中解释了面向并发的编程
以一种非常方便的方式。它实际上是一个博士学位。论文,但不要让那吓到你。
与大多数普通教科书相比,它更容易阅读,而且讨价还价。
查看实际系统通常意味着您必须对实际系统了解太多
它的语言对于评估事物也很有意义。对于 Erlang,documentation
提供设计方法和行为(设计模式库的 Erlang speek)。
这将说明此设置中最常用的设计模式。还有这些
已被证明在构建大规模系统方面是有效的,即数百万行代码(相当于 Java 等其他语言的 4 到 10 倍)和在分布式机器集群中的一台机器上运行的几百万个并发进程。
真实实时系统的最新示例是 Facebook Chat .
对于其他框架,恐怕我无法真正帮助您。


