(转)如何看源码

 

无论是易学难精的js、java,上手稍复杂的c或c++;在计算机诸多语言或/应用领域,基础知识积累到一定程度,再深入就难了。通常可通过看《xyz进阶/深入/思考/权威指南》或一本名字“怪异”的书来进一步提高。 

很多时候我更愿意去找一个优秀的开源项目,带着这样的目的: 
1 基础知识补余 
2 项目精华部分往往超出入门书籍的范围 
3 代码结构、规范化程度及其他出彩之处 

如何看呢?  一定不要直接看源码。 
1 了解项目背景,如果确认不是你的兴趣所在请找其他项目 
2 跟着文档走一遍,如果项目太大,要选择合适的部分 
3 搜一把,看看别人的源码分析,至少理清框架 
4 开始看源码,先分出结构,再逐个歼灭 

从需求入手,搞个二次开发,想改什么地方就大胆的去改

从自己写入手。我都没看过几个项目,看的时候都是带着明确目的性的, 

你说你看着看着就被新东西卡住了……读源码本来就是这样的啊,如果从头到尾都没什么东西能卡住你,那也就不用看了。

有文档的是最好的~文档里都说明了是咋样构架的

看需求分析,
然后是RUN起来看看. 
然后才开始看代码.
代码先看架构,
然后是看数据库结构,
最后才是看UI
 
 
找个工具,先把代码生成个UML,然后打印出来,然后开始分析,我是这么干的
 
 
source insight 看代码
EA 反工程看uml 类图  
 
如果是Linux操作系统 用vim + ctags + taglist 
如果是windows     用Source insight
 
一般用source insight看代码,用meld比较,写的话还是比较喜欢vi
 
 
 
跟着写个程序,从MainActivity开始,你试试,对你绝对有好帮助呵呵
 
每个人看源码有他自己的方式!
如果为了读源码而去读源码那么我觉得你会非常痛苦, 因为可能你是没有目的的去读! 一个类少则几百,多的几千行, 看下去要死人的!
在你遇到某些问题需要跟源码去解决的时候,源码里面去翻你需要的那部分,这样读起来会比较轻松点, 每次遇到问题找一部分, 而且同5L说的,每次钻一个问题就钻深一点! 当然找到需要的源码是要对源码的结构很了解的!
 
 
 
看别人的代码不可能看的很用心的,看看大致的架构就好,比如分的几层,每层挑一部份代码看看,也就看看有没有什么好的算法之类,一些比较复杂的功能是怎么实现的,别人的东西能坚持看个20%就很不错了
 
 
 
 
 
原文地址:https://www.cnblogs.com/lifegoesonitself/p/3422179.html