如何阅读开源代码

最近在看logback的源代码,对于程序员来说,阅读源代码的能力很重要,可以让自己快速成长,在开源世界里有太多代码可以学习了。我觉得阅读源代码的难点和关键不在于能看得懂代码逻辑,而在于看懂为什么? 看懂代码逻辑,横下心一步一步跟没问题,但为什么是这样分包?为什么是这些类和接口?类之间的关系为何这样引用?却不能很快领悟,而且还需要阅者对代码所实现的功能需求有一定程度的了解才行。

如果阅读源代码?有哪些技巧?各位道友发表一下心得啊~
[该贴被abaddoncoder于2014-10-09 10:13修改过]

阅读源码可以累积开发经验,阅读源码如同学生写作前需要大量阅读文章一样。

我的经验是首先试着运行,然后使用代码跟踪,摸清其运行轨迹,找到其核心部分,如果有分层观念,可以找出其各个层或模块的定位。