`
hellogood
  • 浏览: 10397 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

阅读源码

    博客分类:
  • Java
阅读更多
源码阅读其实是一个逆向的工程,这期间必须会遇到种种问题。一般来说,我会遵循这样一个思维范式——Problem domain→model→architecture&implementation→improvement→best practice。

1. 首先搞清楚要分析的产品解决的问题是什么,这个问题在哪个大的范畴里,也就是要搞清楚problem domain。一个著名的开源产品必定在Wikipedia上有相应的条目,所以一开始去看wikipedia是破题的一种极好方式。

2. 清楚要分析产品的大体框架和关键性的概念,也就是理解清楚architecture和key concept。

3. 将分析的产品实实在在的运行起来,我一般选择debian或archlinux作为工作平台,它们提供了丰富的软件包,可以很快的将东西安装并运行。熟悉Linux本身对于开源项目的源码阅读还是大有裨益的。

4. 修改日志级别,得到丰富的日志信息。有了这个为基础,再来开始真正的源码阅读和分析。

5. 源码分析的时候,要始终问这几个问题。
进程以及线程的启动顺序
搞清楚调用关系call flow
这一部分代码是在同一个进程中么,同一个线程中么,运行在同一台机器中么
每一个线程都要问清楚,什么时候启动的,什么时候停止的
消息传递的路径,针对每一个函数,搞清楚,input是谁传给我的,output要传给谁,由哪个来传
搞清楚上述的问题之后,就将最开始提到的对architecture的了解做到具体而微了。有了这个基础之后,再继续往下问
当前实现的性能如何,比如i/o, cpu, network 这个需要做相应的测试方面的试验
当前的解决方案还有优化空间吗,比如针对spark中的scheduling问题,就有sparrow的优化机制提出
分享到:
评论

相关推荐

    关于那些阅读源代码技巧

    阅读源代码是软件开发中的重要技能,它可以帮助开发者理解软件的工作原理,学习优秀的设计模式,同时在解决问题时提供思路。文章提供了关于阅读源代码的技巧和方法,其中涉及多个方面,包括目的、工具、知识准备、...

    一款阅读源码

    这款“阅读源码”很可能是一款电子阅读应用的源代码,用于处理和展示各种格式的电子书籍。 在深入探讨之前,我们先明确几个基本概念。源码,即源程序,是程序员用高级语言编写的、可读性强的代码,它是程序的原始...

    趣头条自动阅读源码

    趣头条自动阅读源码,导入按键精灵,可以用于自动刷量

    非常好的源代码阅读工具

    源代码阅读工具是软件开发过程中不可或缺的辅助工具,它们帮助开发者理解、学习和分析已有的代码库,提高工作效率。InsightSetup.exe很可能是一款名为Insight的源代码阅读器的安装程序。在这里,我们将深入探讨源...

    如何阅读源代码

    源代码要养成一个习惯, 经常花时间阅读别人编写的高品质代码. 2.要有选择地阅读代码, 同时, 还要有自己的目标. 您是想学习新的模式

    易语言源码易语言RSS阅读源码.rar

    这个“易语言源码易语言RSS阅读源码.rar”文件包含了一套使用易语言编写的RSS阅读器的源代码。RSS(Really Simple Syndication)是一种内容聚合格式,常用于新闻、博客等网站,让用户能方便地获取和订阅更新内容。 ...

    SourceInsight 源码阅读器

    SourceInsight作为一款专业的源码阅读器,能够帮助开发者深入探索Android的源代码。通过其强大的搜索和导航功能,开发者可以快速定位到感兴趣的代码段,同时,SourceInsight的上下文关联跳转功能使得在庞大的代码库...

    Linux内核源代码的阅读及相关工具介绍

    - 下载Linux内核源代码,通常位于`/usr/src/linux`目录下,也可以从官网获取最新版本的源码包。 3. **源代码目录结构**: - **`arch`目录**:包含不同架构下的特定代码,如x86架构下的代码位于`arch/x86`子目录下...

    HTML5实现的在线PDF阅读器源码.zip

    考虑到PDF阅读器可能需要支持搜索功能,源码可能包含了全文检索的实现。HTML5的`fetch` API或XMLHttpRequest可以用于从服务器获取PDF元数据,然后进行本地搜索匹配。 在安全性方面,由于涉及用户隐私,源码可能会...

    花香阅读源码下载

    "花香阅读源码下载"提供了对"花香短信大全"这一应用的源代码分析,这对于深入了解Android应用程序开发,特别是短信助手类应用的构建非常有帮助。以下将详细阐述源码中的关键知识点: 1. **ActionSherlockBar**:这...

    小程序源码 看书阅读前端 看书阅读带后端 (代码源)

    小程序源码 看书阅读前端 看书阅读带后端 (代码源)小程序源码 看书阅读前端 看书阅读带后端 (代码源)小程序源码 看书阅读前端 看书阅读带后端 (代码源)小程序源码 看书阅读前端 看书阅读带后端 (代码源)小程序源码 ...

    微软计算器源代码

    通过阅读源码,我们可以看到类的设计、继承、封装、多态等概念的实际运用。例如,不同的计算功能可能被封装在不同的类中,每个类都有其特定的职责,这体现了单一职责原则。此外,源码可能会使用虚函数来实现接口的...

    teechart 源代码

    - **阅读源码**:逐步深入,分析类的成员变量和方法,理解它们的作用。 - **实践应用**:结合实际项目,尝试修改源码实现特定功能。 - **调试与优化**:通过调试源代码,解决遇到的问题,优化性能。 5. **资源...

    ios应用源码之两个计算器的源代码 ing_calculator_1.53 2018127

    8. **编译与调试**:通过阅读源码并尝试编译运行,可以了解Xcode IDE的使用,包括编译设置、模拟器或真机调试等。 9. **代码组织**:源码的目录结构和文件命名规则反映了代码的组织方式,有助于理解项目结构和模块...

Global site tag (gtag.js) - Google Analytics