July 28th, 2009 :: jackyz
Joel Raymond 最近搞了一个“悬赏”,看[这里]——如果能在1秒钟以内完成对20K客户端的广播(包含网络通讯,当然,为了排除网络速度的影响,是在本机做的测试),那么就能得到 $1000 。
Joel Raymond 是一个富有经验的 Erlang 开发者,连他都搞不定的问题,可以想象,应该简单不了。但这的确是个有趣的问题,虽说咱没想拿奖金,但这个有趣的题目,不拿来做个山寨测试,岂不可惜?
咱们就从这个很简单的测试程序开始。(注意,相当之初级,高手请闭眼,哈哈)
Read more…
misc
July 10th, 2009 :: jackyz
活跃在博客园的“老赵”,是一位研究 .NET 非常深入的同学(因为我本人也是老赵——jackyz.zhao,所以,特地加了引号)。他最近很关注“在 .NET 下实现 Erlang 语言特性”的课题,并为此写了一系列的技术文章,相当不错,我一直都在关注。他自己写了一个名为 ActorLite 的小东西,此前做过介绍,是个不错的尝试。
最近“老赵”同学写了一篇《一种适合C# Actor的消息执行方式(上)》,其中提到“(在消息执行上) Erlang 中最大的问题”。这是一个很有意思的观点,而且因为富于代表性因而显得很有价值,很有必要拿出来和大家探讨。
Read more…
study
best_practise, language, pattern_match
伦敦的 Benjamin Nortier 最近在他的博客上贴了一篇 《Erlang Factory 2009 – New Kids on the Erlang Block》(原文在这里,位于“伟大”的那堵墙外,浏览请自备溃坝/翻墙工具,或,看后面的原贴照转) ,在这篇博文中,他历数了 Erlang Factory 2009 上见到的几个有趣的新 Erlang 项目,其中的一些本站此前已有关注,另外一些则相当有新意。
另外,在这里喊一嗓子《Erlang Programming》(另外一本)的英文 PDF 已经全文流出,有人贴出了全本下载的链接,大家有兴趣的,可自行 Google 之。
翻墙辛苦,为方便大家,以下原贴照转,并非蓄意盗版。
Read more…
misc

软件开发的奥义就是:分而治之。
代码世界从来都是一个充斥着耦合的世界,在这个世界里有着各种各样的耦合:静态耦合,动态耦合,类型耦合,逻辑耦合,空间耦合,时间耦合……。可以说,通常而言,一个良好的软件开发,最重要的一个步骤就是使用各种各样的工具来解耦目标系统,使其变成更小,更简单,更易于理解,更便于测试,更……的逻辑单元。完成这一阶段之后,剩下来的,差不多就都是体力活了。
然而,需要强调的一点是,我们要追求的绝对不是一个没有耦合的系统(我很怀疑,可能存在这样的系统么?)。实际上,一些耦合正是业务逻辑的表达,无法去除。我的意思是,或许我们致力于去除的,只是一部分“实现层面的耦合”。话说到这个分上,已经有点 “as simple as possible but not simpler” 的味道,赶紧打住了。
为了解耦系统,我们发展出了种种工具:接口、代理、设计模式……。在所有这些解耦工具之中,最为强悍的恐怕就是消息系统,它的解耦效果,不仅仅体现在概念维度上(接口的使用者和实现者),而且也体现在空间维度上(分布式消息)时间维度上(异步消息)。关于这一点,我这里推荐的这本书,讲得比较清楚。
我们很幸运 Apress 在 2006 年推出的《Event-based programming: taking events to the limit》现在已经可以在 Google Book 上全文读到。而相应的豆瓣页面也正等着大家去丰富。
这里需要强调的一点是:解耦从来都是有代价的,更为彻底的解耦通常就意味着更难把握。对于广大 Erlangor 来说,这本书中的代码和实例,可能不是那么有参考价值,但我们使用的语言正是完全建立在“基于消息编程的架构”之上的,多读一点参考资料,至少是第一章,当然也是很有必要的。
感谢 Jeffry Zhao 在 Twitter 上的投递。
misc
Book, event_based
Recent Comments