通过阅读别人的代码轻松提高自己的编程能力

代码阅读的必要性
   阅读别人的代码作为研发人员是一件经常要做的事情。一个是学习新的编程语言的时候通过阅读别人的代码是个最佳的学习方法,另外是积累编程经验。如果你有机 会阅读一些操作系统的代码会帮助你理解一些基本的原理。更有就是在你作为一个质量确保人员或一个小领导的时候如果你要做白盒测试的时候没有阅读代码的能力 是不能完成相应的任务。最后一个就是如果你中途接手一个项目的时候或给一个项目做售后服务的时候是要有阅读代码的能力的。
收集所有可能收集的材料
阅读代码要做的第一件事情是收集所有和项目相关的资料。比如你要做一个项目的售后服务,那么你首先要搞明白项目做什么用的,那么调研文件、概要设计文 件、周详设计文件、测试文件、使用手册都是你要最先搞到手的。如果你是为了学习那么尽量收集和你的学习有关的资料,比如你想学习linux的文件系统的代 码,那最佳要找到linux的使用手册、及文件系统设计的方法、数据结构的说明。(这些资料在书店里都能找到)。
  材料的种类分为几种类型
1.基础资料。
比如你阅读turbo c2的原始码你要有turbo c2的函数手册,使用手册等专业书籍,msc 6.0或java 的话不仅要有函数手册,还要有类库函数手册。这些资料都是你的基础资料。另外你要有一些关于uml的资料能作为查询手册也是个不错的选择
2.和程式相关的专业资料。
每一个程式都是和相关行业相关的。比如我阅读过一个关于气象分析方面的代码,因为里边用到了一个复杂的数据转换公式,所以不得不把自己的大学时候课本 找出来来复习一下高等数学的内容。如果你想阅读linux的文件管理的代码,那么找一本讲解linux文件系统的书对你的帮助会非常大。
3.相关项目的文件资料
这一部分的资料分为两种,一个相关行业的资料,比如你要阅读一个税务系统的代码那么有一些财务/税务系统的专业资料和国家的相关的法律、法规的资料是 必不可少的。此外就是关于这个项目的需求分析报告、概要设计报告、周详设计报告,使用手册、测试报告等,尽量多收集对你以后的代码阅读是非常重要的

知识准备
了解基础知识,不要上来就阅读代码,打好基础能做到事半功倍的效果

留备份,构造可运行的环境
代码拿到手之后的第一件事情是先做备份,最佳是刻在一个光盘上,在代码阅读的时候一点不动代码是非常困难的一件事情,特别是你要做一些修改性或增强性 维护的时候。而一旦做修改就可能发生问题,到时候要恢复是经常发生的事情,如果你不能非常好的使用版本控制软件那么先留一个备份是个最起码的需求了。
在做完备份之后最佳给自己构造一个可运行的环境,当然可能会非常麻烦,但可运行代码和不可运行的代码阅读起来难度会差非常多的。所以多用一点时间搭建 一个环境是非常值得的,而且我们阅读代码主要是为了修改其中的问题或做移植操作。不能运行的代码除了能学到一些技术以外,用处有限。

找开始的地方
做什么事情都要知道从那里开始,读程式也不例外。在c语言里,首先要找到main()函数,然后逐层去阅读,其他的程式无论是vb、delphi都要首先找到程式头,否则你是非常难分析清晰程式的层次关系。梅晓清http://meixiaoqing.blogbus.com

分层次阅读
在阅读代码的时候不要一头就扎下去,这样往往容易只见树木不见森林,阅读代码比较好的方法有一点象二叉树的广度优先的遍历。在程式主体一般会比较简 单,调用的函数会比较少,根据函数的名字及层次关系一般能确定每一个函数的大致用途,将你的理解作为注解写在这些函数的边上。当然非常难一次就将全部注解 都写正确,有时候甚至可能是你猜测的结果,不过没有关系这些注解在阅读过程是不断修正的,直到你全部理解了代码为止。一般来说采用逐层阅读的方法能是你系 统的理解保持在一个正确的方向上。避免一下子扎入到细节的问题上。在分层次阅读的时候要注意一个问题,就是将系统的函数和研发人员编写代码区分开。在c, c++,java ,delphi中都有自己的系统函数,不要去阅读这些系统函数,除非你要学习他们的编程方法,否则只会浪费你的时间。将系统函数表示出来,注明他们的作用 即可,区分系统函数和自编函数有几个方法,一个是系统函数的编程风格一般会比较好,而自编的函数的编程风格一般比较会比较差。从变量名、行之间的缩进、注 解等方面一般能分辨出来,另外一个是象ms c6++会在你编程的时候给你生成一大堆文件出来,其中有非常多文件是你用不到了,能根据文件名来区分一下时候是系统函数,最后如果你实在确定不了,那就 用研发系统的帮助系统去查一下函数名,对一下参数等来确定即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值