请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何阅读开源项目源码

大目老师,最近想通过项目去学习一下 nacos 源码,把 spring-cloud-alibaba 项目 fork 并 clone 本地了,但是去看源码的时候没有头绪,找不到切入点,您能分享一下您想要学习一个开源项目是怎么去阅读源码的吗?还望老师提供点思路,谢谢

正在回答

1回答

我个人看代码的节奏一般是这样的:

  1. 带有问题去分析代码。我个人不太喜欢漫无目的地看代码,感觉这样没有意义,而且看了也记不住。如果给自己设定问题/目标,这样就会有针对性,像破案一样,一来会有线索感,二来能锻炼自己的逻辑能力、总结问题的能力,三来看了印象会比较深刻;

  2. spring/spring boot基础。其实spring boot/cloud的代码本身并不难,难的是spring本身的一些套路和编程模型,总的来说,还是基础。比如AOP、一堆注解如何自定义、spring boot配置如何加载等等,如果这些能掌握,对看代码简直如虎添翼;

  3. 速查代码入口。spring boot很多人认为代码难找,主要是入口难找,就像您说的,找不到切入点。这是很多人的一个感受。视频里面我把核心的类都找给大家了,直接按照我找的类去研读就OK了。此外,我个人常常通过actuator/conditions端点,找到spring boot的配置入口,根据这些入口,就可以迅速找到spring boot/cloud整合X的代码入口。找到入口后,后面要做的就是分析了。

  4. 一半猜,一半看,或者说猜 > 看。我建议看代码之前,不妨想想:如果是自己设计,会怎么做。然后用自己的思路作为猜想,用代码印证自己的猜想是不是正确。最后如果自己的想法正确,那说明英雄所见略同;如果不正确,也可以分析一下,你的思路和别人的实现区别在哪里,各自的优缺点是什么。我觉得这个阶段可能比单纯看源码的收获更大。

看源码是提升自己水平的一种手段之一,无须过分苛求,看代码是手段,提升自己才是目的,真正的高手不会拘泥于代码。在我看来,每个人的技术之道都是不一样的,源码阅读也未必适合所有人;号称研究过XX代码的也不一定真是高手,可能是装逼犯(我遇到过好几个这样的);没有研读过源码的水平也未必比读代码的差。

最后,在我看来,只要基础够扎实,看懂开源代码,比看懂同组开发人员的业务代码要简单多了。因为框架代码一般是比较优雅的,而业务代码很多真的和天书一样。我个人觉得如果开源框架看不懂的话,往往是因为基础问题,而不是能力问题。应该做的是去复习一下基础,比如设计模式、AOP等等。

哈哈,以上是个人阅读代码的几点心得,说得有点碎,而且比较主观,希望能起到一定启迪的作用,至于带有主观看法的,你忽略就OK啦。

4 回复 有任何疑惑可以回复我~
  • 提问者 雪域沉销 #1
    谢谢老师指点。
    回复 有任何疑惑可以回复我~ 2019-08-31 10:07:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信