代码改变世界

支持多线程的DRB server

2012-01-06 09:24 by 悦思悦为, 233 阅读, 0 推荐, 收藏, 编辑
摘要:DRB是ruby的远程进程调用(remote process calling)机制,类似于java的RMI。在一个项目中采用了DRB实现server与client之间的通信,其中对于server有以下要求:a) 并发处理多个client的请求,对于每个client用一个线程来处理; b) client发出请求后可以立即返回,不需要阻塞在那里等待server处理。 代码比较短,不过因为我不熟悉ruby线程和drb,写的过程中踩到几个陷阱。现在把实现时需要注意的几点总结如下: 1) 给client调用的接口函数在server主线程。为了实现上述b),这个函数不完成具体处理,只是创建新的timer对 阅读全文

系统架构设计的工程与艺术(0)

2012-01-06 09:13 by 悦思悦为, 194 阅读, 0 推荐, 收藏, 编辑
摘要:对于系统架构设计,我现在是功力不够,境界还凑合,俗称眼高手低是也。功力不够只能一点一点地练,一点一点的涨了,还不知道什么时候能有所小成。不过有境界也算是一件好事情,所以这个系列会先聊一聊境界方面。 之所以用了这样一个标题,是因为系统架构设计既有比较通用的、相对固定的方法与模式,即工程化的一面,也需要设计师发挥个人的灵感与才华,即艺术的一面。二者不可偏废。 系统架构设计有7个需要注意的要素,可以概括为P4QAD,具体如下: 要素1:原则(Principles)。原则是系统架构的内在规律性的东西,是为了达到系统的可靠性、性能、可重用性、可扩展性等多方面的需求,应当遵守的具有普遍意义的规则。原则的重 阅读全文

编程语言使用率的统计与简单分析

2012-01-06 09:12 by 悦思悦为, 644 阅读, 0 推荐, 收藏, 编辑
摘要:这里有一个统计: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 2011年的前几名依次是:Java, C, C++, PHP, C#, Objective-C, VB, Python, Perl, JavaScript, Lua, Ruby, Delphi, Lisp... 从2002年到现在,Java、C和C++的使用率总体呈下降趋势,说明这些“大语种”的份额被不断兴起的“小语种”蚕食,意味着多语言开发更流行了。 2005年Java与C++的使用率都有较明显的下降,但之后Java出现反弹,C++却一路走低。与 阅读全文

网络发展的模式之一:新功能在应用系统涌现,然后逐渐迁移到基础设施

2012-01-06 09:10 by 悦思悦为, 164 阅读, 0 推荐, 收藏, 编辑
摘要:以前看过Cisco的一个PPT,其中有一页用动画描述了这样的过程: 一些原本在应用系统实现的功能迁移到网络基础设施中,而应用系统中又出现了新的功能。 1) 最初的网络与应用系统是这样的:2) 防火墙/组播等功能迁移到IP网络基础设施中,同时原本由电路交换网络提供的呼叫类业务与QoS功能都在IP网络及上层应用系统中实现了,IP一统天下。这基本上就是当前网络的状态。3) 应用系统中的其他功能继续迁移到基础设施中,伴随着新的功能也在不断出现。这会是网络的明天么?当初并没有太在意这个PPT,后来才逐渐感觉到,Cisco的产品在一定程度上正是按照这条路在走:除了对于容量、带宽的追求之外,一些原本由专门的 阅读全文