楼仔
2023/02/18阅读:25主题:绿意
看不懂源码,一条路debug吗?
大家好呀,我是楼仔。
有很多同学看不懂源码,但是又想学,不知道怎么办,这不,技术派知识星球里就有一个球友提问:开源项目应该怎么学习?直接一条路 debug 吗?
我相信很多同学都遇到过类似的问题,特别是刚接触源码,或者刚参加工作不久的同学。
不仅仅是开源源码,公司项目其实也一样。
比如你刚入职不久,或者刚接手公司的某个项目,如果项目简单还好,对于稍微复杂一些的项目,关键是你还必须快速上手(老板才不会让你花太多时间慢慢学习),就非常头疼了。
球友提问
楼仔,想问一下对于没有视频的开源项目应该怎么学习?直接一条路 debug,然后汇总文档吗? 有没有好的思路?
楼仔回答
球友好,你这种问题,我工作前几年也遇到过,后来看的代码多了,也总结了一套自己看代码的流程和方法,希望能对你有帮助。
无论是开源项目,还是公司项目,我一般会按照下面这套流程,就拿我们的技术派项目来说:
-
一个项目上来直接看代码,然后一条路 debug,你会一下子陷进去,我一般是先找项目文档(我很少看视频),或者网上的博客,搞懂整个项目的框架、功能模块划分、整体流程等,让你对项目有一个整体的认识。
-
然后再选择一个你感兴趣的模块作为突破口,也是找一些该模块的文档(或者网上有一些读者的笔记),搞懂它的整个设计思路。
-
最后才是看代码,看代码之前,我也不会直接开整,我会先看 DB,因为所有的操作都是围绕 DB 去处理的,搞懂 DB 的设计和各表之间的关系后,再去找该模块的入口去看代码。
-
看代码时,千万不要陷入细节,这点要牢记!!!要学会“抓重点”,就比如一棵树,你要抓主干,不要钻到枝叶里面出不来,之后就可以去 debug。
-
抓完主干后,如果你对某些细节感兴趣,可以再慢慢深入研究。
总结一下:框架 + 模块 -> 模块设计思路和流程 -> DB设计(如果没有可以跳过) -> 抓代码主干 + debug -> 扣代码细节 -> 再看其它模块,直到全部看完。(不过我有时也会先看“DB设计”,再看“模块设计思路和流程”,这个因人而异。)
比如我之前看 Spring 源码,就拿 Spring 循环依赖来说,这个嵌套逻辑有点深,不是很容易看懂,但是我看得很快,主要就是用了上面这套方法,多借力身边的资源,先框架、再原理、再主干、最后扣细节。
ending
方法你努力更重要,成功没有捷径,但是我可以让你少走弯路!
技术派知识星球上线不到一周,就已经有 50 多名球友加入,这个对于刚破万粉的号主来说,是非常难的,为什么这么多同学相信我呢,我想打铁还需自身硬吧。
如果你学习缺乏方向和计划,或者缺乏一个良好的学习环境,可以加入我们。这是一个技术派项目教程 + 硬核资料 + 学习交流的私密圈子,你也可以向楼仔提问、帮你制定学习计划、和球友一起打卡成长。
星球原价是 129 元,给大家申请了一波 30 元的优惠券,最后的优惠价是 99 元。
大家时间都很宝贵,早上车一天,就少浪费一天时间。

关于更多星球介绍,点击左下角“阅读原文”。
作者介绍