golang

上次去ECUG听了一次讲座,了解到这世界上还有一门go语言。最近抽时间学了一下,很优秀的一门语言。

公司有一个框架,是用c++实现了协程的调度。用它实现“服务节点”非常方便。今天终于把框架里面节点之间是如何

通信的部分搞懂了。调度的部分还不是特别清楚,正好go实现了调度这部分的功能。所以,计划用go实现一个通用的框架,

来更快速的开发服务。

先把基本思路写在这里。

go中的协程是用chan(管道)通信的,所以可以借鉴actor模式。

1:每个协程有一个GID,用户可以找到这个协议。

2:每个协程包含一个chan,其它协程可以通过GID向他发消息,chan里面存放的是消息。

3:消息包括,消息发送者,消息接受者,消息数据。

4: 需要有2个映射。

         GID--->协程  

         peer--->GID  peer指的是,和服务建立的每一个连接。

5:控制消息。(控制协程的退出,错误消息,等等)

6:消息的方式还是采用消息工厂,这是我很喜欢的一种模式。用消息工厂,反射的去生成消息。

7:如果协议中没有诸如发送者,接受者之类的信息,还是得提供transltor的形式。

目标是实现这一一种方式,对于s/c模型,用户只用实现若干个,Prosscor(Message*)函数。其它部分用脚本自动生成代码。

=================================

采取边学习,边写的方法

目前碰到的问题,以及要完成的任务

1:如何将类型装换成类型名字。如何通过类型名字new一个对象

2:xcode协议格式。

3:go中实现继承有哪几种方式。Message需要继承。

posted on 2011-12-04 21:58  51Liuda  阅读(876)  评论(0编辑  收藏  举报

导航