如何读项目代码

如题所述

(再没有文档这个总是有的吧?哪怕是个代号)2.这个项目的性质3.源代码的规模有多少行(其中有多少行是注释),总共有多少个文件(每一类文件分别有多少个,每个文件是多少行)如果是面向对象的,有多少个class,如果是面向过程的有多少个function4.功能的详细整理功能列表函数名 功能 功能描述5.功能模块之间的关系(哪怕没有注释,按名称,调用关系一定能整理清楚)如果你把我上面列的5点搞清楚了,再来抱怨,我想应该是下面这个样子:老大给了我一个项目源码让我看,注释都没有,是一个超级留言本,总共有10万行代码,就两个文件,函数不到10个,功能就是注册和留言,连修改删除功能都没有,大家说我看这样的代码有意思吗?我是不是还要待在这里?如果你完成了我上面说的5步,你仍然觉得没什么值得学的,没有什么需要做的,说明你不适合干编程这一行。下边呢就具体的介绍一下心得。当我们学习程序编码时,首先会看一些程序代码例子,然后学例子去修改编写代码;当我们刚进入一个公司,公司会把要维护修改的项目分给我们,让我们修改维护,要想修改编写,首先要读懂项目主要程序;当我们去看一些优秀的开源项目,想从中学习这些项目的设计思想时,我们也要去看项目代码…如此等等,可以说读代码是为了写代码,写出非常优秀的代码。因此对于程序开发人员来说,快速阅读项目代码是一个必需要掌握的能力。前段时间,我接手了一个php做的系统,公司要求我参阅这个项目重新做一个Demo,在读这个系统代码时,我积累了一些关于读项目代码的心得体会,主要内容如下。 清楚主要功能 想一想如何实现 首先要清楚项目的主要功能,知道它主要是干什么用的,才可能从总体上去把握项目。可以通过向公司同事或其他人请教、或查阅项目需求分析文档,概要设计文档来快速获得项目主要功能,如果没有这些文档,可以在网上搜索项目的功能,如果以上这些都没有条件的话,那只有把此项目运行起来,通过自己的实际操作来得到项目的主要功能了。清楚项目主要功能后,自己首先想一想,如果让我做,该如果去实现呢,这样能够得到对自己来说的技术难点,读源代码时会更留意这些内容,效率也就提高上去了。 运行项目 找到实现主要功能的代码 清楚主要功能以后,就可以去读实现主要功能的代码了,当然还需要找到这些功能是在那些文件,那些类来实现的。为了找到实现类,我们还要把项目运行起来,依据项目类型及特点,通过不同方法找到实现类代码。把这些文件记录下来,随后只需重点看这些文件中的代码,就可以了。 依据代码的类层次关系 了解项目体系结构 通过其他一些工具把这些代码的类图导出来,比如(rational rose或powerdesigner的逆向工程),如果是Java项目还可以导出Javadoc。依据导出的内容,了解每一个主要实现类的大致功能,及这些类之间相互关系,这样也就清楚了项目的类层次结构,即项目体系结构。 清楚项目主要实现技术 依据导出的类图和对项目了解的疑点,如果是技术方面,比如自己不知道或不清楚该怎么实现某种功能,那就赶紧参照源代码,找到项目主要实现技术。如果对此技术不熟悉,那就快快在Baidu或Google上面搜索一把,ok,一定会很多关于此技术的资料等着你去看呢,抓紧阅读这些资料,尽快掌握此技术的内容。 调试主要实现类,从中了解实现细节 了解了项目的体系结构,并清除项目主要实现技术后,下一步就是看实现细节了。看实现细节,也是从整体到局部,从看各个方法声明出发,在逐步看每个方法体。当然没有必要每个方法都要去一行一行看,只需重点看与实现此类主要功能的核心方法。对某些代码看过一两编后,还是很迷茫的话,没有关系,调试一把,看看它终究是有何作用。调试有很多中,最终要的是一步一步跟踪,但是有些语言编写的代码很难用这种方式做,比如(javascript或applet),那就把一些重要的变量输出出来。了解了主要功能代码的主要方法后,可以基本上说我们已经看懂了项目的代码,把握了项目的整体架构。 修改代码来满足自己需求 看懂了项目代码,最后一步就是根据需要,来修改项目代码,满目我们的需要了。以上就是我在看项目代码中的总结,当然,如果项目非常功能很少,没有使用什么复杂技术的话,了解体系结构和清楚项目主要实现技术就可以跳过了,根据实际,直接需要去看源代码就可以了。
温馨提示:答案为网友推荐,仅供参考
相似回答