Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
有个梨UGlee 2019-12-28 01:07:34 发布的技术动态 - OurCoders (我们程序员)
有个梨UGlee
2019-12-28 01:07:34 发布
最近写的一些代码里涉及通讯,DBus;在JavaScript里采用了一个偷懒的做法就是全部用一个object作为rpc的接口形式,在整个链路上传递,无论是method call, method return, error, signal,包括模块内部的和与dbus通讯的;从某种意义上说它类似command pattern,另外一种意义上说,它让程序用类似express.js处理http的方式组织结构。

我不确定这是不是一种面向通讯或者说异步程序的nature,但它确实让程序异常的compact;核心的部分可以说是tightly coupled;而JavaScript的无类型特性给这件事情带来方便,因为在一个message object的整个传递的链路上,添加和修改属性,以及调试都非常方便。

++++++

所以从某种意义上去问,Unix在一边(kernel)高举着一切皆io的设计哲学,而在另一边(userspace)实际上是在鼓励thread model而不是event model;它从很大意义上说,在unix诞生的时代,是在virtualize在unix出现之前的分时计算模型;但从设计哲学上说,这似乎是个基础的冲突,也很可能是今天在userspace编程时,“并发”一词被讨论得热火朝天的原因。