zoukankan      html  css  js  c++  java
  • 【Spring源码这样读】-怎么阅读源码

    做开发要不要读源码?如果你天天996,真心的不建议你去读源码(我是不介意做一个劝退师的)。读源码确确实实是一个费时费力的活,如果你每天都很忙,偶尔看一眼,想了解其中的奥秘,这很难办到。那我们需不需要读源码?读源码能给我们带来什么,本文会一一阐述,看完之后,你在考虑要不要去读!

    在这里插入图片描述

    写在前面

    在考虑怎么读之前,我们不妨先来看看别人是怎么看待读源码这件事的。

    • 问:读源码有用吗?现在很多的东西都是开箱即用,既然有轮子,难道我还需要把源码读一遍再去创造一个轮子吗?

    答:有用!如果你天天996,偶尔看几分钟,你读源码只会给你带来痛苦,不能持续的、有结果的去看真的没啥用。如果你对框架的基本应用都不熟悉,也不建议你去读,这样无异于给自己增加了一些无趣的知识(即使里面有很多的逻辑,你都用不到,学来真的只能锻炼一下思路)。当然还有太多无用的理由,但是如果你是一直在用的,读源码,最起码的作用在于你的设计能力和对代码的优化能力上,这些更多的是增强了你的软编码能力。如果要说的直观一点,源码都写得很优秀,进过多次优化,你看的多了也能学习到这些优秀的编码方式。其次就是如果出现了很多框架的坑,你能够有了很好的思路去解决,知道问题是哪里来的。最后可能是没那么明显的,你要去做东西的时候,你设计思路会有很好的提高

    • 问:我英文不好可以读源码吗?

    答:可以!英文不好并不能阻碍读源码,毕竟翻译软件多的是,可能翻译的会有些出入,但是配合看代码也是八九不离十的。毕竟有一定的功底,是能够有效的纠正一些可能出现的错误的。

    • 问:什么人需要读源码?

    答:这个问题像我需不需要读书一样,按正常套路,我应该劝你积极。不过还是来点实际的。提升能力的方式有很多种,并不是每个人都需要从零去走到一的。就好比你都有很好的体系知识了,或者有了很牛逼的老师。别人给你理好了,避免了你从零开始。那就没有必要去走远路了。如果你像去从事架构之类的工作,如果你想去解决相关的一些框架的bug,你们应用里面出现了这样那样的问题,这种都是急需要去学习一下的。在你没有很好的资源支持,你又想着有很好的提升,这一类人也是可以去读的,毕竟源码就是优秀导师。

    在这里插入图片描述

    为什么要读源码?

    看完这些问答,是不是大概有了些答案?总结一下吧

    • 提升设计能力和解决问题的能力
    • 升值加薪的一种途径
    • 提升编码能力
    • 让你具备使用轮子同时有创造轮子的能力
    • 更好的掌握框架

    源码怎么读?

    • 首先需要有份源码

    有些人为了偷懒,或者利用碎片时间直接断点项目里面的依赖,这是一个极其不对的做法,给你带来的真的只有浪费时间。(源码的下载,安装后面会专门来出文章)

    • 不建议跟着断点去读

    跟着断点一步一步走真的能看好代码吗?看代码真的不是这样看的。有很多朋友在初读源码的时候,喜欢跟着断点一步都不放过的去阅读。这种方式不太推荐。说点实际的吧,源码有多少行?多少个方法?为了一个功能点,一步一步的走断点,检查代码。这样我们能收获什么?只会越看越晕。方法那么多,代码那么多。当你跟上5个方法,你基本就已经晕了。

    • 学会做图

    不妨去做一些脑图,来辅助自己很好的去阅读源码。作图是一个高级的必修课,做一些图最起码没有那么容易晕。要是你阅读源码是已经有方法有步骤的,脑图会对解析流程起到很大的帮助。

    • 用疑问的方式来阅读

    这条有个前提。我们最大的问题不是需要疑问,而是在不了解的情况下你根本提不出问题或者提不出有效的问题。所以带着疑问去阅读一定要先去看看框架的基本流程和功能,从流程和功能上去入手会效率高很多。

    在这里插入图片描述

    • 去熟练使用框架和熟悉框架的功能点

    这一点可以和上一点配合使用。在使用的时候去考虑,为什么要这么用,反过来提问,作者为什么要设计这种规则,让用户这么来使用。也可以去反思作者是从什么点出发的来设计这种功能,然后为什么选择这种方式来实现。

    • 伪代码去实现自己的想法

    仅仅只是看看,那最终也就真的只是看看了。也许培养了阅读能力,但是并没有太多实质的突破。可以考虑看完之后,自己去按照自己的理解去实现以下。这个时候就可以反向应正自己的理解是不是对的。如果写出来了最起码证明理解没啥问题,同时还能做一件事,那就是可以那自己的实现和源码比对,到底是你写得优秀还是他写得优秀,优秀在哪里,学习他的优秀实现方式。

    • 知识点复盘

    学完一部分之后,我们要去复盘一下,当然这个复盘并不是说去复习,而是那我们学习到的这一部分功能点对源码的理解,在实际应用中去找对应的功能,然后去看看能给我们带来什么帮助。

    推荐跟着一些书去读

    • 《Spring源码深度解析》
    • 《spring揭秘》
    • 《SPRING技术内幕》

    在这里插入图片描述

    最后一个问题:怎么坚持?

    放弃阅读源码的原因,基本就这几个

    • 费时费力
    • 太过复杂
    • 没有时间
    • 看不到明显结果
    • 对部分功能很迷茫

    放弃是很正常的事情,涨薪作为动力也是不靠谱的,就当是锻炼一下技术吧,看知识点,有体系的去阅读。

  • 相关阅读:
    解题报告:hdu1008 Elvator
    解题报告:hdu1003 Max Sum
    解题报告:hdu 1005 number subsequent
    矩阵快速幂
    初步
    学习笔记:矩阵的基本运算的实现
    解题报告:hdu1284 钱币兑换问题
    解题报告:hdu2191汶川地震
    解题报告:hdu1248寒冰王座
    解题报告:hdu2602 Bone collector 01背包模板
  • 原文地址:https://www.cnblogs.com/xlecho/p/14525347.html
Copyright © 2011-2022 走看看