likes
comments
collection
share

看不懂源码,一条路debug吗?

作者站长头像
站长
· 阅读数 11

大家好呀,我是楼仔。

有很多同学看不懂源码,但是又想学,不知道怎么办,这不,技术派知识星球里就有一个球友提问:开源项目应该怎么学习?直接一条路 debug 吗?

我相信很多同学都遇到过类似的问题,特别是刚接触源码,或者刚参加工作不久的同学。

不仅仅是开源源码,公司项目其实也一样。

比如你刚入职不久,或者刚接手公司的某个项目,如果项目简单还好,对于稍微复杂一些的项目,关键是你还必须快速上手(老板才不会让你花太多时间慢慢学习),就非常头疼了。

球友提问

楼仔,想问一下对于没有视频的开源项目应该怎么学习?直接一条路 debug,然后汇总文档吗? 有没有好的思路?

楼仔回答

球友好,你这种问题,我工作头几年也遇到过,后来看的代码多了,也总结了一套自己看代码的流程和方法,希望能对你有帮助。

无论是开源项目,还是公司项目,我一般会按照下面这套流程,就拿我们的技术派项目来说:

  • 一个项目上来直接看代码,然后一条路 debug,你会一下子陷进去,我一般是先找项目文档(我很少看视频),或者网上的博客,搞懂整个项目的框架、功能模块划分、整体流程等,让你对项目有一个整体的认识。
  • 然后再选择一个你感兴趣的模块作为突破口,也是找一些该模块的文档(或者网上有一些读者的笔记),搞懂它的整个设计思路。
  • 最后才是看代码,看代码之前,我也不会直接开整,我会先看 DB,因为所有的操作都是围绕 DB 去处理的,搞懂 DB 的设计和各表之间的关系后,再去找该模块的入口去看代码。
  • 看代码时,千万不要陷入细节,这点要牢记!!!要学会“抓重点”,就比如一棵树,你要抓主干,不要钻到枝叶里面出不来,之后就可以去 debug。
  • 抓完主干后,如果你对某些细节感兴趣,可以再慢慢深入研究。

总结一下:框架 + 模块 -> 模块设计思路和流程 -> DB设计(如果没有可以跳过) -> 抓代码主干 + debug -> 扣代码细节 -> 再看其它模块,直到全部看完。(不过我有时也会先看“DB设计”,再看“模块设计思路和流程”,这个因人而异。)

比如我之前看 Spring 源码,就拿 Spring 循环依赖来说,这个嵌套逻辑有点深,不是很容易看懂,但是我看得很快,主要就是用了上面这套方法,多借力身边的资源,先框架、再原理、再主干、最后扣细节。


精品 PDF 获取 🔥🔥🔥

对于一个想去大厂的后端研发,能否熟练掌握高并发是判断他优秀与否的重要标准之一,这本手册《高并发手册》相当经典,涉及缓存、异步、限流、熔断、降级、分片、雪崩、主从、一致性等一系列知识点。

看不懂源码,一条路debug吗?

PDF 获取地址:mp.weixin.qq.com/s/5pgAJZIw5…

我从清晨走过,也拥抱夜晚的星辰,人生没有捷径,你我皆平凡,你好,陌生人,一起共勉。