星期三, 八月 27, 2008

工作进展

忙,实在没什么什么时间,挤点巴点巴一点点写吧。来杭州 5 个多月了,其他不论,在工作专业方面,还是有不少进展,总结下来大致有以下几点:

1. saunit 项目:第一天上岗,说要写一些 Trouble Shooting 自动化脚本,没人做,我说我来做吧,然后弄了个框架。不想越做越大,现在变成了整个公司监控项目中的一部分,现在我在忙活的就是这玩意... saunit-0.2.2 已经发布,可以做自动化检查(当然检查脚本还是要自己去扩展,只不过写起来就很方便也很规范了)。saunit-0.3 正在开发,需要支持并发和更强的调度功能,而且是作为整个分布式系统的代理端运行。

2. 设计模式:其实设计模式我之前没有系统学过,到实际用的时候就是野路子,而后来看来书后才发现我自己用的就是这么个东西——真是有悟性呀——自夸一下 ^^D。因为做项目的原因,实际使用时学习的效果是比较不错的。后来参加过三天外部讲师做的设计模式的培训,当时与大家讨论我的一些设计的时候,老师的评价是 cool,嘿嘿~~~ 而我那是基本上才刚刚看设计模式而已,嘿嘿~~~

现在看得比较多,用的比较好的有:策略模式、工厂方法、命令模式和单件模式等,而且因为 Python 的原因,多态非常好用。

上设计模式课的时候提到的一些企业应用的框架也蛮有启发性的,有时间还要好好看看。

3. 分布式系统:当 saunit 开始要扩大为监控系统的时候,我就开始考虑整个设计,并且希望能够做成分布式的维护系统而不仅仅是监控——这些灵感和想法最初就来自于弗洛.文奇的《天渊》。

所以去图书馆找了一些分布式系统的数来看,再次发现自己有悟性(^^P)——我无意中考虑使用了消息队列这种模式。另外,我也考虑了关于主机认证、协议设计等一些问题。

后来,虫虫介绍了一个叫 func(别看错了 呵呵 ^^$) 的东西,好像是 redhat 刚出的新东东,讨论过后,发现很多东西和我之前的想法比较接近,它的协议使用 XMLRPC + JSON,具体是如何还得有时间再研究。

4. 架构设计(控制和监视系统):做监控系统的时候,一开始没人,只能我来搞,文档都写好了,甚至已经开始动手做一些东西了,虽然可能也不咋地。好在后来有专人来负责了,也算是搞到了资源,虽然很多想法被裁剪了,有些甚至面目全非,让我觉得有些别扭,特别是现在做 saunit-0.3 实现的时候要按照那种思路,有时候觉得逻辑挺复杂的。

不过就当学习吧,实际上也有很多好的想法的确也是我以前没想到的。更多灵感。

5. 协议设计:主要一是应用协议设计中需要考虑哪些问题,如确认和断点续传、消息队列及其缓冲。另一个就是接触到 JSON 这个东西,感觉非常好,比较符合我这种讨厌 XML 的人的思维系统,而且我在考虑是否能和 Tree 解析,将 FORMAT 和 CONTENT 分离实现更大的数据传输吞吐效率,这样可以将更多网络 I/O 转变为 CPU/MEN 的操作。

google protocol buffers 太晦涩,用起来也不太方便,先不管了。呵呵。

另外就是现在因为项目的原因,需要对使用 UDP 做应用协议有更深入的学习,也不错。

6. TCP/IP 和网络编程,对 TCP 的一些东西了解得更多,比如停等时间、滑动窗口等,上次也参加了《UNIX 网络编程》的培训,还好,大部分内容还能懂,虽然那些 C 语言现在对我来说实在是有些艰深晦涩了... 我何时有时间再真正捡起来呢?

......