前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring 源码01 开始阅读

spring 源码01 开始阅读

作者头像
潇洒
发布2023-10-23 08:58:09
1380
发布2023-10-23 08:58:09
举报
文章被收录于专栏:石头岛

在开始源码阅读之前,一定要使用过这个产品,了解这个产品的功能、特点。

在开始源码阅读之前,需要先明白几个事

  1. 是否足够了解
  2. 要阅读到什么程序
  3. 如何开始、从哪里开始

开始前

最好是带着问题去阅读源码,不纠结于小细节。 我一般读源码就是碰到问题后,带着问题去看,效果更好,不要想着假大空,把源码当小说一样看。 单个问题解决后,再向外延伸,就可以把一些点串起来。 最后,需要反复看一些重点部份,消失对源码的陌生感之后就会能看进去。 熟悉之后就会一种想要了解更多的感觉就会一直往下看,这个就是自动驱动的动力。

如果看不下去,不要责怪自己懒,人对看不见短期收益的事提不起兴趣这才是正常的一个人,趋利避害是正常的。 看不下去,该干嘛干,强迫自己看效果很差。不要骗自己,假装努力是在浪费时间,干IT的都很忙,看不去就看改改bug。

技巧

  1. 对说某个功能,在看之前,可以有自己的推测,想像后续的流程是如何执行的。
  2. 切一个 read_code 分支用来作注释,写上自己的见解,也方便以后再回到这块代码时能快速理解。
  3. 找到真实阅读源码的动力,如:
    • 准备跳槽、面试
    • 想了解原理
    • 解决项目中的问题
    • 装逼
  4. 跑测试用例,好的开源软件有非常详细的测试用例,可以验证到每一个细节,跑测试用例就可以让人学到不东西。
  5. 阅读后的输出整理,这个不用多说,学习就是输入 + 输出。
  6. 尽量找机会跟同事、同行讨论你看过的源码。
    • 如果你看过了,就让你装到了。
    • 如果你没看过不了解,别人帮你查缺补漏

如何阅读

从哪里开始

Spring 模块之么多、项目这么大,到哪里开始合适? 如果你是想解决问题,直接定位需要阅读的部份; 如果你是想深入了解,那有两种方式:

  1. 从关键最重要的几个概念开始,然后延伸
  2. 了解了整个框架的脉络后,从最基础的部分往上看

另外,看代码不是看小说,不是要一字一句的陷入到细节,切记。当然如果你就是喜欢这样。

测试用例

这个是我比较荐的一个方法,看完一遍之后,通过测试用例可以跟着代码走一遍,调细节。

阅读安排

打开 Spring 项目,先来罗列一下整个项目。这个可太多了,分一下

代码语言:javascript
复制
spring-aop
spring-aspects
spring-beans
spring-context
spring-context-indexer
spring-context-support
spring-core
spring-expression
spring-instrument
spring-jcl
spring-jdbc
spring-jms
spring-messaging
spring-orm
spring-oxm
spring-r2dbc
spring-test
spring-tx
spring-web
spring-webflux
spring-webmvc
spring-websocket

核心容器

spring-core spring-beans spring-context spring-context-support spring-expression

切面编程

spring-aop spring-aspects

代理模块

spring-instrument

web

spring-web spring-webflux spring-webmvc spring-websocket

从最基础的核心模块开始学习,了解最基本的原理,中间会遇到各种其它的基础知识和技术,就可以顺便拓展一下技能树。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开始前
    • 技巧
    • 如何阅读
      • 从哪里开始
        • 测试用例
        • 阅读安排
          • 核心容器
            • 切面编程
              • 代理模块
                • web
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档