LumaQQ分析

满打满算看LumaQQ的源代码有一个星期了。我以为还是本科时看那些代码,开开个IDE就开始分析程序结构,外加调试跟踪几遍就差不多能够摸清——实践证明我错了,我费了很长时间才搞清里面的静态关系,也就是类、接口之间的继承关系,然后跟踪出一般的执行流程。其中使用到Java 1.5中的新特性:并发线程包,可以把一般通信协议中用到的超时重发机制做得很简单,简单到就像硬件watchdog一样,只需要两个操作:设置-触发,然后它就会启动-触发-启动-…… 这个是我以前写那些简单的程序从未用到过的,那时候只会套用最原始的C/S时代的框架,侦听-接受-新开线程处理-再监听…… ,要考虑的只是插入自己的处理逻辑。当我从LumaQQ的汪洋代码中抬起头来,看到周围人写的网络实验程序都还停留这种框架中,我发现我们是不是在这个学校把自己搞得太死了?

我打算放弃了。我把自己需要的那部分代码整理了一下,基本上就是它的核心部分,优化了几个地方,然后加入到自己的框架中,准备罢手。QQ2006中加入了验证码机制,这从根本上判了原来方案的死刑,不幸的是我当时候并没有在意,因为当时的重点不在这个上面,重心是把QQ这个作为样本,然后调试网络协议,结果没想到客户端逻辑的分析就费了很多时间,没有力气去提取一个简单的框架来做网络协议的调试器了。

现在感觉做的很没有意义,都是别人做过的,没做的,有困难的自己又没那个能力去做,或者还没有做的基础,想来眼下的能力局限的厉害,除了有点训练的意义外,没有什么有价值的成果。自己又不愿去做那些简单的陈旧的技术,也没有谁会让你去尝试一种新的技术,这些,似乎永远都只能作为自己的兴趣,而成不了自己的职业,也成不了自己的责任。

分析代码这样的活,还算是件值得去做的事,起码按劳动事件算,它的价值不算低,跟自己以前的分析水平比起来,这次还是得到了锻炼。要想把一个想法做成程序,或者一个这种规模的小软件,还要学很多。以前都不懂ant,不懂协议分层,apache的那些package都没有见过,调试只会println,现在算是见识了。

其实lumaQQ网站上有源代码指南,但是我没有去看,因为我想试一试,结论是对于稍微复杂一点的项目源代码,我还没有这种水平,一来是缺乏类似的程序设计经验,对基本的框架不熟悉,二来是缺少一些基础知识,比如Java的并发库,使用UML的一些分析技术,分析思想还是那种比较原始串行算法的模式,C语言的思想,唉,这个星期这么累,实在是自食其果。

要想提高,除非是利用所能利用的一切资源,搭一个台阶,然后爬上去;只是在原地跳一下,也就是一下而已,我跳得不高,也抓不住上层的台阶,以后还是不要这么做事为好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值