我的源码阅读论

原创 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. 问问问:这就不多说过了,只要记住脸皮要厚,不要不好意思,去找编写或维护过的兄弟们千万次的问吧。

反馈与建议

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

相关文章推荐

我的源码阅读论

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

大神如何阅读源码

以下是我搜集的各种方法,我将一一尝试,会根据尝试结果,做个总结,与大家一起分享: 1、腾讯IMWEB负责人说: 首先,搞清楚自己要读懂他们的原因和动机。 其次,可以先看下这些优秀框架或者库的设计文...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Android事件分发机制完全解析,带你从源码的角度彻底理解(下)

记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。 还未阅读过的朋友,请先参考 Android...

flashsim源码阅读(intq队列操作)7-8

推荐源码阅读的的工具是sourceInsight3.5,直接将源码文件导入,就会生成一个各文件关联的工程,这个工具可自行百度,配合Nodepad++修改注释阅读更好,因为SI不知道为什么对中文注释输入...

谈谈自己关于阅读源码的一点鄙见

起因是这样的,最近一个工作两年同事,用其他同事写好的一些控件,网络库的时候,总是问别人怎么调用,有几种调用方法,不只是一次两次是每次都这样,一个简单封装Dialog的调用都要问别人怎么用传什么参数,什...

教你如何剖析源码

原文地址:http://www.cnblogs.com/lang5230/p/5516348.html 一、源码阅读需求   在学习中,我们会需要了解,学习,使用一个框架,一个新的函数库。在工作中,...

ptmalloc源码阅读-malloc_chunk

内存管理不外乎三个层面,用户管理层,C运行时库层,操作系统层 目前轮子处于运行时库层,制作这个轮子的目的是为了了解底层内存分配是如何实现的,后面肯定主要是实现用户管理层。 常见C内存管理程序: ...

源码阅读(一)RadialTransitionExample

这是一个Radial的过渡效果 源码地址 (https://github.com/apadalko/RadialTransition_objC) 源码实现的是navigationControlle...

[sentry源码阅读] event请求与写入过程初步剖析

客户端向sentry服务发送一个错误日志在sentry内部被称为event,以js客户端为例,异常发送时的请求url为: http://localhost:8000/api/2/store/?sent...

Spark修炼之道(高级篇)——Spark源码阅读:第十二节 Spark SQL 处理流程分析

作者:周志湖下面的代码演示了通过Case Class进行表Schema定义的例子:// sc is an existing SparkContext. val sqlContext = new org...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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