46. 你要有多小心才算小心

我有一个女同事,性格特别开朗活波,生活中也是乐观,积极向上。有次过马路,在路上被车擦了一下,把大腿擦破了。具体细节我没问过她,后来零散的听她讲,场面也挺尴尬。为这事我还愧疚了好几天,幸好只是擦破了皮,就算忍一下也不算损失什么。后来的一次,我们从香山邮局去徒步,也是走在路上。路本身有点窄,一辆车直接从她旁边开过去,就隔了那么几厘米,把我们都吓坏了。我才知道,并不都是怪她,她也是走在路靠边的位置。有一回我们从王平走圈门,刚走进王平村,遇到厕所,我们几个都要去。我也没注意到,路中间有一群建筑工人正在扛钢筋刚好从我们旁边路过。她在我旁边的,她就那么一转身,隔钢筋真的也是几厘米,这次把扛钢筋的和我们都吓坏了,我直接停顿了几秒钟不知所措。也不全怪她,她仅仅是转身而已,而且也是走在路靠边的位置。

今天我也是,爬上好汉坡,往植物园方向走去百望山。路过第一个防火道路口,我就顺便拿出手机来看轨迹。我感觉地图上标的轨迹方向并不是很准确,就拿手机跟着轨迹走,我转向右边的防火道,轨迹就偏离了。我很自然的往右转,就那么一丝的瞬间,我一下摔倒在地。眼镜都不知道滚到什么地方去了,模糊的看到手机耳机线这个位置被砸成粉末了。一瞬间也顾不得心疼,要爬起来又滑了一下,手上才感觉到地上有冰。我撑起来走到路边。才看到这一块的冰还没有融化,被踩的很光滑。发觉眼前模糊才知道眼镜不再了。我把包放路边,眼睛不好一下子找不着眼镜,蹲下来才看到眼镜没有被摔坏。戴上眼镜才发觉右手掌有点疼,一看被划了个两厘米长的口子,还破了皮。从包里拿出创口贴贴了两块,才想起手机好像砸坏了。拿出来看了下,好心疼。整个Home键这块屏幕,都是裂缝。按了两下,功能不受影响,但是屏幕算是坏了。一时间竟然没有生气,却发觉左小腿有点疼。蹲下来一看,裤子被划了一个小洞,掀开裤子才看到膝盖下面这块,完全擦破皮了。幸好都是皮外伤,没什么大碍。

Read More

45. Go http rpc 笔记

rpc包提供了通过网络或其他I/O连接对一个对象的导出方法的访问。服务端注册一个对象,使它作为一个服务被暴露,服务的名字是该对象的类型名。注册之后,对象的导出方法就可以被远程访问。服务端可以注册多个不同类型的对象(服务),但注册具有相同类型的多个对象是错误的。

只有满足如下标准的方法才能用于远程访问,其余方法会被忽略:

  1. 方法是导出的;
  2. 方法有两个参数,都是导出类型或内建类型;
  3. 方法的第二个参数是指针;
  4. 方法只有一个error接口类型的返回值。

事实上,方法必须看起来像这样:

func (t *T) MethodName(argType T1,replyType *T2) error

其中T,T1和T2都能被 encoding/gob 包序列化;这些限制即使使用不同的编解码器也适用(未来,对定制的编解码器可能会使用较宽松一点的限制)。

方法的第一个参数代表调用者提供的参数;第二个参数代表返回给调用者的参数。方法的返回值,如果非nil,将被作为字符串回传,在客户端看来就和errors.New创建的一样。如果返回了错误,回复的参数将不会被发送给客户端。

Read More