近期想读下程序,但发现非常难。
比如一个网络程序模块,有6个cpp源程序,共5916行源代码,不包括头文件中引用的别的地方的代码。
1、我对业务还算熟悉,但是看到那么多变量定义时还是感到理解起来很吃力,因为有些变量根本就是过程变量。
2、函数层层调用的问题:看一个函数时已经有些头痛了,里面又调用了几个函数,这些函数中的每个又调用了别的函数Y1、Y2。。。,函数Y1、Y2。。。有些又调用了别的函数,有些调用了系统函数(或者标准库函数),一层层跟踪下去,跟到底时发现刚才最先看到的那个函数竟然忘记叫什么了,汗死。这是人干的活吗?
3、很多标准库函数或者系统函数,或者泛型函数或者其它的库函数等等,对于不是初学者来说也不一定记得全吧,而且c++的语法规则我相信很多程序员都要时时翻书的,遇到困难时,就像心里打了一个结,纠结,去翻书的同时也影响了心情和阅读的速度,如果业务不熟更加麻烦,几十、甚至几百个变量、函数、结构体把你的头脑干死,而且由于这个程序是网络程序,有些网络知识是必须掌握的吧,如果不懂,阅读质量也要大打折扣。怎么解决这些问题好呢?
4、请不要跟我说我基础不行应该先看书,打牢基础。我个人认为看书有很多东西是很难理解的,而且有些东西长时间理解不了也会有心结。
我也并不是非计算机专业的学生,我的基础还是有一些的,而且对linux、perl、shell都比较熟悉,但是看到庞大的C++项目想将其通读时,很压抑,很纠结。
有文档一定要看文档。。
个人认为, 任何程序都是有所谓的机制和策略。
关心程序做啥的, 就看他做啥。
关心怎么实现的, 就看细节。
一层层的跟,没必要,至少开始没必要。
6000行算少的了。
有文档的话先看文档,再借助某些工具,列出类、函数之间的关系图,再从主要模块逐个看相关代码
恩 用source light 看代码吧 很方便的
SourceInsight
cscope