最近,我一直在研究支持参与者/代理/无共享架构的替代语言 - 即。 scala、clojure 等(clojure 也支持共享状态)。
到目前为止,我读过的大部分文档都集中在介绍级别。我正在寻找的是四人组中更高级的文档,但没有共享任何内容。
为什么 ?它有助于理解设计思维的变化。简单的示例很简单,但在现实世界的 Java 应用程序(单线程)中,您可以拥有包含 1000 个具有复杂关系的成员的对象图。但是,通过基于代理的并发开发,它引入了设计大型系统时需要理解的一套全新的思想。 IE。代理粒度 - 一个代理应该管理多少状态 - 对性能等的影响,或者是将共享状态对象图映射到基于代理的系统的良好模式。将领域模型映射到设计的技巧。讨论不是关于技术,而是更多关于如何在设计中最好地使用该技术(现实世界的“复杂”示例会很棒)。
即使我无法想出任何好的现实世界例子来为您提供设计
模式直接向上,有几个地方可以开始。
首先是让你的头脑正确地理解这些概念。一本书有帮助
你这样做是在存在软件错误的情况下打造可靠的分布式系统 http://erlang.org/download/armstrong_thesis_2003.pdf由 Erlang 大师 Joe Armstrong 撰写,其中解释了面向并发的编程
以一种非常方便的方式。它实际上是一个博士学位。论文,但不要让它吓到你。
与大多数常见的教科书相比,它更容易阅读,而且更令人愉快。
查看实际系统通常意味着您必须了解太多有关实际系统的信息
语言对于评估事物来说也是有意义的。对于 Erlang 来说文档 http://www.erlang.org/doc/design_principles/part_frame.html提供设计方法和行为(Erlang speek for 设计模式库)。
这将说明此设置中最常用的设计模式。还有这些
已被证明可以有效构建大规模系统,即数百万行代码(相当于 Java 等其他语言的 4 到 10 倍)以及在分布式机器集群中的一台机器上运行的数百万个并发进程。
最近的一个真实系统的例子是脸书聊天 http://www.facebook.com/note.php?note_id=51412338919.
对于其他框架,我恐怕无法真正帮助您。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)