• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

如何精读或泛读别人编写的程序源代码?

时间:2015年04月02日 15:24:46    来源:魔法猪系统重装大师官网    人气:8651

读代码这事,先要分是精读还是泛读。

从学习的目的来看,一定要精读一定量的经典代码。而精读是指每行都读懂,不看代码脑子里就能勾画出程序的基本结构。

这里有个很形象的状态,精读代码时会满脑子都是代码,放不下,甚至睡觉前脑子里也是代码。

但这一篇里主要不是关注如何精读代码的,而是关于如何在工作中掌握既有代码的,等价于泛读。

现存的很多系统往往很大,几十万行的可能也只算普通。

这时候一旦加入了这样一个项目,那么如何去读代码?

下面说点个人体会。

读这类代码前,先得把规格大致弄清楚,而不能上来就读,比如:对于应用型程序,你要先大致整清楚它的使用方法。

如果其中有涉及到领域知识,比如:流程、财会等,那也最好预先有些认识。这类东西从代码里反推回来是不太可能的。

我个人感觉这对读程序是个很大的障碍,你不知道编码规则,却去读编码的程序,总是会云里雾里,这时候反倒不是因为程序难,

而是因为不知道程序中所包含的专业知识。

在这一步里,最好能抽取出来几个典型的应用场景,这在后面有用。

一旦开始接触代码,那要先弄清楚代码的基本静态结构。如:包构成、类构成等。

这里涉及一个层次问题。一下子把层次探的太深,就容易盯在细节上出不来。

有设计文档的项目,大致上可以通过包来界定这个层次。

没设计文档的就可怕了,只能靠自己划分,最好不要超过10个,超过了真记不住。

在静态结构这步,要弄清楚每个部分的核心职责,可以简单,最好能记住。

接下来就要用到上面的典型场景了。

要在典型场景下考察上面的静态结构是如何发挥作用的。

典型场景下用到的接口往往就是关键的接口,要整清楚,他们的定义和作用。

也要整清楚,典型场景下数据流的变迁。

这步骤算是弄清楚代码的时序。很像UML里的Sequence图。

但牵涉到数据的时候,一般需要对数据的规格有所了解。

接下来要关注进程、线程的结构。比如:都是什么时候开始、什么时候结束的,在上述典型场景下都负责干什么。

上述四步(规格、静态结构、典型场景、进程线程)完成后,对程序的第一次泛读完成。

检验标准很简单,这时应该能够单靠纸笔描述出程序典型场景的Sequence图。

干这事儿的时候,要抑制自己的求知欲,因为总是很想在调试器里通过call stack把一个功能的实现细节整清楚,

但至少在第一个层次里,可以先不要这样。

第一次泛读后,就要进入深掘的过程,针对的对象应该是自己会负责的部分。这部分功能往往会隐藏在某个接口之下。

这时候一般来讲可以放过功能型的模块,比如:XML解析的模块等。其他部分可以认为是需要把之前所说的四个步骤再重复一下。

但这时候要关注细节和调用堆栈了。

不管是在那个读代码的层次,有两个基本技巧总是需要的,一个是要掌握具体程序里内嵌的Log机制,要能看Log,必要时可能还得加Log;一个是基本调试方法。

调试很难展开,《软件调试》一书写了1000多页。

但只停留在设个断点等他停下来这个层次上还是会有点欠缺的。条件断点、多线程调试、多进程时的调试还是要知道一点的。

程序类型太多,因此估计读程序的方法也很多。上面只是个人的一点经验,欢迎补充。

如何,精读,或,泛读,别人,编,写的,程序,源代码,
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部