hur.cn - 华软网

 热门搜索

◆◆如何看第三方10万行代码◆◆

  作者:未知    来源:网络    更新时间:2009/8/2
在下也正在看代码,比1万行多,比 10万行还多些,有几十万行吧!这些代码是一家第三方公司写的,而我现在要在这个代码基础上加些功能,公司很小,只有我一个人做这个项目的开发,我为了看完这些功能模块及接口,到今天为止花了20多天了!还有些没有看完,但基本可以动手改写其中些许功能了!所以在看代码方面算是有点经验吧!在这里写一下,同大家交流交流!不对的见谅见谅不要骂人,呵!
========================================================
0、如果工程项目数量很多的话【如我现在看的这个代码项目就有60多个】,一定是以前团队开发的,所以请把不同版本的VC++转为统一一个版本的VC++【我转为了VC++2008】
1、一般都有以前人家编译好的执行文件,如果能在自己统一的环景编译通过的话,首先把原来编译好的所有文件全面删除,自己动手全面编译一下!
2、一个人或请人配合把能玩的执行程序玩一下,全面动手玩玩,了解其中的每一个特性!因为所以特性都会有对应代码,这个大家也明白,哪能无中生有啊!

3、接下来才是真正的看代码了。代码怎么看呢,就是用细化法!如我现在的项目而言,有客户端,服务端,还有客户与服务两端共公的项目,所以我们得分出来这些项目,原来的代码及项目分类不是很清楚,我现在给他用解决方案文件夹分开来,这样就很清楚了!
4、选择一个方面入手,我先看的是还有客户与服务两端共公的项目,这里的项目就有三个,一个一个看完了,之后看客户端,最后看服务器端,到今天为止差不多20多天了,也看得差不多了!
5、这里有必要说一下看各个细化后小项目的方法:如果是EXE项目,则执行一下,先了解了项目的功能集合!如果是DLL项目,则没有这一步,再看文件名,如果是MFC对话框项目,则找到App文件,及Dlg文件,看看他们有些什么变量,找出关健自定义的类名,再右击跳到对应类定义的那里去。一般一个项目,关健的类也只有那1-2-3个,不会太多,我们找出了关健的类,再细看类了!
6、如果是DLL项目,一般关健的类都会实现接口,这个接口中的所有方法看一下,就基本了解其主要功能了,如果接口命名没有办法让你了解其功能,你就看一下这个类中的对接口方法的具体实现,一般也能了解其大概,不用全面了解,那样太浪费时间,只要了解其大概就行,毕竟只是一个函数而已,就算全面了解一个函数的功能也没有什么太大的作用!
7、每看完一个项目的主要类功能集之后,一定要做文档记录,类为我们是要看多个项目,只有做记录了,之后才能有一个全面的把握,要记住,我们看的项目还有60多个呢!
8、还要注意,看代码不是一个项目接一个项目死看,在自己看,如客户端的几个项目之后,你心里就会有些基本概念了,这后你就接着看联系比较大的项目,同样每一个项目看完了都做有记录。
9、每看完一个功能大块,如我这里是客户端,就把自己所有看完的项目的记录拿出来,统一整理,把这个项能功的结构理顺,做一个完整的记录!
10、如我的这个源码有三大块,一块一块看完,都把三大块的结构理顺了,也就可以基本了解其功能了!
========================
另外提一下:
a、不是所有项目都得看的,有些项目可以一带而过,有些甚至可以一分钟都不用看他!
b、看源理实质就是整结构,对结构有帮助的文件先看,对结构理顺的作用不大的文件可以后看或不用!
c、至于有没有工具帮助,我也没有怎么用,就用VC++2008。
============================================================
上面有人提到“随时用笔画出类的继承关系,数据的传递关系”
,在这里我提一下,VC++2008里右击资源文件管理器里面的项目名,有一个类图选项,选中他后会出来类的继承关系图,可以看看,但对看代码作用不是非常非常的大,因为结构的理顺不是类的继承关系,而是类内别的类的成员的定义,不知道这个“数据的传递关系”有什么好的工具没有!
写得不好,请体谅!对不起!
愿意的话,539929779,可以加我QQ[539929779]交流交流!请注明一下"c++"才会得到通过!
---华软 网友回答---
我建议楼主还是找一个有经验的“师傅”带一下吧,

因为以前的项目组的代码量也是10多万左右,有导师制度,三个月下来,也不见得徒弟很熟练,普遍情况是这样,少数例外的就不说了,仅供楼主参考,谢谢。
---华软网友回复---
MARK
---华软网友回复---
楼主,真的很同情你。。。

如果代码都没问题,你只需要改特定部分的代码,有时间再全部都弄明白

---华软网友回复---
十万多行代码,让你加功能,只看加功能地方的代码 就行了,不用全看。

全看工作量太大了,比自已写都麻烦。
---华软网友回复---
代码再多也是为了解决问题,如果心里清楚问题应该如何解决,看代码就会容易。

---华软网友回复---
学习了……
---华软网友回复---
这个 得支持,学习
---华软网友回复---
先看个大概, 看的时候自己加断点, 跟断点走 
---华软网友回复---
关注中
---华软网友回复---
还改的话,不需要都了解的。

C++特性保证
---华软网友回复---
文档呢?
这要是遇到以前的代码命名不规范没注释简直痛苦死了。

---华软网友回复---
这个要顶
---华软网友回复---
mark,佩服楼主!
---华软网友回复---
代码啊,看的头大了都!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。