Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1998881
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类:

2006-02-24 23:05:37

作为软件研发人员,以后面对最多的恐怕就是代码了。如果没有很强的代码阅读能力,可以说是步步唯艰,很难想象如何能快速从庞杂的代码中理出一个思路来。
这两天帮Jackey分析蓝迪游戏平台的协议,开始看得确实有些晕头转向,看了几个小时也没看出任何门道。不知道从何下手,确实有点儿烦难,心就更急了... ...
后来静下心来,好好想了想,分析了一下:
  • 开发语言为C++,是面向对象。
  • Library是QT。
  • 图形界面的应用程序,当然用的也是”事件驱动“。
对照自己的情况:
  • C++语言自己还算熟悉,就是需要一个比较好的代码交叉阅读程序,Linux下面可以用VIM,ctags,global来阅读,不过ctags不支持C++语言,很是郁闷,global和VIM的配合不怎么样,再加上是在Motorola实习,没有Linux系统可用,所以就采用Windows下面的Source Insight吧!虽然是第一次使用,但是很快就算是基本上手了。不过只是前后跳转嘛。Ctrl + "=": 跳转到所在Symbol的实现处;Alt + ","跳转到前一个Symbol。有点不习惯这两个快捷键,更不习惯的是需要用方向键左右移动光标,以前都是用h、j、k、l移动光标的。凑合着用吧!:)
  • QT以前看过一点儿,不能算是熟悉。所以Google一下,找点儿资料看了一下,其实主要看其signal和slot、connect和emit的相关内容。
  • 事件驱动的程序,一般都是先注册相应的事件回调函数,一切就绪之后,进入事件循环,当事件发生时(比如用户按下了某个button),程序根据事件发生的属主和事件类型,调用相应的回调函数来执行相应的动作。所以可以跟踪一个事件的回调函数,了解其实现。需要特别指出的是Timer,这是个比较特殊的对象,当进入事件循环之后,Timer对象就会周期性的调用相应的回调函数(当然Timer也可以只运行一次,或者指定的次数后停止),这也是一个切入点。
想好了对策之后,接下来的路就非常顺利了。所以不管遇到什么事情,都需要冷静,不要盲目,全面的分析完情况后再下手,能避免走很多弯路!
阅读(1846) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~