我的源码阅读论

原创 2016年05月31日 00:12:27

我的源码阅读论

这是一篇随笔。最近准备开始阅读一些开源的项目,还有公司的项目源码也开放给我了,准备认认真真的进入状态啦。(PS:已经实习近两个月了,貌似进步太慢!)。因为我记性比较差,所以觉得有必要在这里记录一下自以为比较正确有效的源码阅读方法。

工具论

  1. SourceInsight:据说是最好的源码阅读工具。
  2. Doxygen:可以将批注转换为说明文档。
  3. 各种IDE。
    其实,我觉得对于不是特别复杂的项目,使用你习惯的IDE环境阅读代码即可,还可以边看边改边调试,方便的很啊~!

方法论

  1. 准备:需要了解项目使用的语言、环境等技术基础,然后还需要简单了解整个业务结构。
  2. 体验:运行一遍代码比任何方式都能让你更快熟悉。当然,如果你能加上一些日志记录那就更好了。
  3. help:寻求help,可以是看文档或是请教开发维护过项目的兄弟。一定要记住,别人的一句点拨可能抵上你自己琢磨好几天。
  4. 记录:我觉得用笔记本记录是最好的习惯,特别对于我这种7秒记忆的。可以记录模块功能、函数调用、心得体会等。当有时间时,可以整理成电子文档。

论论论

这是我要说的三个论:
1. 目的:目的很重要,如果你只是去调试bug的,那就直奔案发现场,由点到面的看,直到解决问题;如果你是学习目的,那就需要模块化的去阅读代码,从广到深,逐步深入。
2. 跟丫死磕:如果你看了几天还是没入门,或者是卡在某个点就是过不去,记住别气馁,和丫死磕!换方法、换角度、查日志这些方法可以帮助你战胜它,记住,任何代码都是人写的,都是有一条隐形的逻辑线条串联的。
3. 问问问:这就不多说过了,只要记住脸皮要厚,不要不好意思,去找编写或维护过的兄弟们千万次的问吧。

反馈与建议

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

linux内核源码阅读之facebook硬盘加速flashcache之三

上一节讲到在刷缓存的时候会调用new_kcahed_job创建kcached_job,由此我们也可以看到cache数据块与磁盘数据的对应关系。上一篇:http://blog.csdn.net/lium...

第五课:彻底精通Scala隐式转换和并发编程及Spark源码阅读

彻底精通Scala隐式转换和并发编程及Spark源码阅读
  • aijiudu
  • aijiudu
  • 2016年12月12日 13:22
  • 165

Spark修炼之道(高级篇)——Spark源码阅读:第十节 Standalone运行模式解析

Spark Standalone采用的是Master/Slave架构,主要涉及到的类包括:类:org.apache.spark.deploy.master.Master 说明:负责整个集群的资源调度及...

HashMap实现原理以及源码阅读

1.    HashMap概述:    HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该...

StreamCQL源码阅读(2) 语法和语义解析

本文转载自http://zqhxuyuan.github.io/ 如需转帖,请征得原作者同意 StreamCQL的Schema以及语法和语义解析 前戏: Semant...

sphinx 源码阅读之数据结构与算法

源码在 sphinx 官网上就可以下载到. 起初我下载的是最新版本,结果由于代码大约有 10W 行,我看了快 1W 行后发现这样看也不是个办法。 于是我想着生成一个项目关系图来阅读代码,但是我...

pg3 bypass源码阅读 —— 学习x64内核hook跳板技术

如之前描述的 pg3复杂了许多 先来看看都要hook哪些点 1、hook dpc和定时器分发器,防止seh路线触发pg KiTimerListExpire,KiRetireDpc...

[Android]修改Bitmap的Config格式设置及其Config参数源码阅读

关于修改Bitmap的Config设置Bitmap.Config介绍  首先先介绍一下Config设置里面的参数吧,一方面让读者清楚,另一方面也是给自己加深印象。 (这些参数决定了Bitmap位图的...

caffe使用gdb单步调试及源码阅读

本文主要是介绍我在阅读caffe过程中参考的顺序以及网站。 首先阅读caffe看了知乎上面的这篇文章 深度学习caffe的代码怎么读?参考的是Gein Chen大神的回答: 1.先让程序跑...

Spark修炼之道(高级篇)——Spark源码阅读:第十三节 Spark SQL之SQLContext(一)

1. SQLContext的创建 SQLContext是Spark SQL进行结构化数据处理的入口,可以通过它进行DataFrame的创建及SQL的执行,其创建方式如下: //sc为SparkCo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的源码阅读论
举报原因:
原因补充:

(最多只允许输入30个字)