1 走上阅读源码的道路

从我刚刚开始入行的时候就一直就有很多前辈们提点我,告诉我要读源码,只有阅读源码才能提高自己成为大神。但是始终没有人告诉我到底改怎么阅读源码,阅读源码到底可以怎么提高自己从哪些方面提高自己。就算你从各类论坛网页或者专栏中看到的一些大拿的回答。感觉总是差点意思,还是入不了门。这个行业还有个奇怪的现象,一个人技术很厉害的人讲课传授知识的能力特别垃圾。俗话说不想当架构师的厨子不是好司机,所以一直在重复的去阅读各类源码,看得懂的要看,看不懂的也要看(其实大部分还是可以看懂的,不过雾里看花,仅仅知道它是花而已)。就程序员这个行当而言我相信有百分之七八十的人的目标都是想摆脱CURD,成为大拿、架构等等。直到近些年才有所感触有所体会。首先从几方面谈下我的体会。阅读源码的好处、怎么读源码。希望刚入行或者还有些迷茫的朋友有所参考

2 为什么要阅读源码

都说源码是最好的老师,但是我们首先要明白源码这个老师有什么能力。可以教给我们什么。凡事要有目的,没有目的最终什么也得不到。下面咱们来谈下我们从源码中可以学习到什么。

  • 程序设计

平常我们谈论最多的就是设计,但是真正开发的时候就是if else。说是工时短,只能代码堆砌,所以自己提升不了,只会CURD.。公司以盈利为目的没有毛病,至于你自己的成长就需要你自己需要想办法去,因为跳槽涨薪又不是你现有公司的事情。

看源码学习设计,就算你平常找本设计模式的书看再多也是无用的,因为你不知道怎么用,什么时候该用。如果你看源码你就会发现,源码的设计总是可以恰到好处的通过各种设计模式将程序设计的高可用、高扩展。比如Spring设计了很多扩展点,监听器所以他的扩展性才会那么高,我们阅读Spring源码的时候要学习他是怎么实现这些扩展点和监听器的,下次我们写代码是不是也可以在适当的场景下按照它实现的思路去写,还有Mybatis的拦截器、SpringAOP,他们是通过责任链模式和动态代理来实现的它拦截的特性 我们写代码的时候我们是不是也应该有一个高扩展的思想,然后参照源码的实现方式和流程去实现咱们的代码。这仅仅是一个例子,还有很多的设计模式。读源码的时候多问下他为什么这么写,这样设计解决了什么问题。每一种设计模式的应用都要明白他对应的特性和解决类什么问题。如果你想明白之后,你的思路和实现是不是就这一个想法上就和写源码的大神处于同一水平了,当你看源码的时候多考虑设计和问为什么,慢慢的大神的思维和设计就会被你所吸收,慢慢的你就会跟他们处于同一水平。更高的水平就是你看懂了他设计的好处和应用之后,又看到了这种设计的不足,并且能想出设计方案并且解决它,哪你将超越大神。

  • 学习知识点

学习一门语言,包含了很多语法规则和一些其他的高级技术,基础的语法规则支撑我们写平常的代码。但是一些高级的知识可以让我们写出更好的程序和功能,例如并发、IO等技术。

对于一个初级程序猿而言你只需要了解基础的语法就可以CURD,但是一个程序写到最后肯定是要考虑到并发、锁、IO等方面。但是这些东西我们紧紧去通过学习知识类用书是不太好学明白的。还是那句话不会应用就是白学,过个十天半月也就忘的差不多了。

通过阅读源码你可以学习到IO怎么用,怎么处理高并发、怎么用锁等等基础知识。在你阅读spring源码的时候你可以看到有些地方使用synchronize、lock你会学到什么场景下使用synchronize、lock.使用锁的最佳实践案例。当你阅读RocketMQ、Kafka的时候你可以学到他们高性能IO的设计方案,以及他们是怎么使用IO知识实现的零拷贝或者页缓存等等。按照这种方式你对基础知识的理解和技术深度越来越深。当你在内心存储了大量的程序设计案例和每个基础知识的深度理解之后,那么自己写个源码级别的项目也仅仅是时间的问题,不会存在什么技术壁垒。所以看源码的时候一定要注意源码对这些基础知识的运用,了解这么用的场景和解决的问题,从设计层面去考虑用这种写法的优缺。

  • 代码规范

代码规范这也是个老生常谈的问题,基本上每个程序员都会跟你强调代码规范的重要性,但是代码就国内的行情来看,代码还是一如既往的烂。哪一坨有一坨的代码除啦自己没人可以搞定,甚至隔一段时间连自己都懵逼。从另一方面而言这样也增加了咱们的不可替代性(玩笑不可取

源码到底应该怎么读?相关推荐

  1. 几行代码撸了一天,源码到底该如何读?

    作者 | Kaku       责编 | 欧阳姝黎 近期有个小需求,在不重建Container的前提下修改Pod结构中的Request值,限制仅可以调小.本以为很简单的一个需求,但实际花费了一天的时间 ...

  2. java 源码系列 - 带你读懂 Reference 和 ReferenceQueue

    java 源码系列 - 带你读懂 Reference 和 ReferenceQueue https://blog.csdn.net/gdutxiaoxu/article/details/8073858 ...

  3. 16w行的nginx源码,如何才能读懂呢?全面分析nginx的机制

    16w行的nginx源码,如何才能读懂呢?全面分析nginx的机制 1. nginx的轮子组成 2. nginx的epoll实现机制 3. nginx的内存机制 视频讲解如下,点击观看: 16w行的n ...

  4. 35.FFmpeg学习笔记 - ffplay源码解读3之读文件

    本篇文章看看ffplay是如何读取packet放入队列中的. 一.先看入口函数: int main(int argc, char **argv) {VideoState *is;...av_init_ ...

  5. 如何快速阅读java源码_如何速读?--如何快速阅读

    下面这些资料是我刚才在整理电脑硬盘的时候发现的,是以前自己刚刚开始关注自己阅读速度和质量的时候收集的资料.因为但是上面不方便,所以全是整理成了TXT文件保存下来,现在发到Blog里面,做个记录.速读要 ...

  6. Iceberg源码学习:flink读iceberg流程一

    实例 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); StreamExec ...

  7. 读懂 Redis 源码,我总结了这7点心得

    作者|Magic Kaito 来源|水滴与银弹 阅读本文大约需要 8 分钟. 你好,我是 Kaito. 用了这么久的 Redis,也翻了很多次源码,经常有人问我到底怎么读 Redis 源码. 一提到读 ...

  8. 读Zepto源码之操作DOM

    2019独角兽企业重金招聘Python工程师标准>>> 这篇依然是跟 dom 相关的方法,侧重点是操作 dom 的方法. 读Zepto源码系列文章已经放到了github上,欢迎sta ...

  9. 读 zepto 源码之工具函数

    对角另一面 读 zepto 源码之工具函数 Zepto 提供了丰富的工具函数,下面来一一解读. 源码版本 本文阅读的源码为 zepto1.2.0 $.extend $.extend 方法可以用来扩展目 ...

最新文章

  1. 2022-2028年中国女式西装行业研究及前瞻分析报告
  2. 微娱推客——青龙羊毛
  3. python写一个表白程序-用Python做一个情人节表白神器
  4. 循环控制-链表反转(与创建链表)
  5. MySQL查询的进阶操作--条件查询
  6. sniffer 和 debug flow
  7. 获取两个时间之间的间隔_花了两天,终于把 Python 的时间转化给整明白了(超多图解)...
  8. mini web框架-2-显示页面
  9. fedora10 linux内核,自己动手编译Linux2.6.25.10内核(Fedora 7)
  10. 在PPAPI插件中使用Skia绘图
  11. 关于保险的“损失补偿原则”
  12. ECharts x坐标轴(xAxis)使用详解
  13. logistic回归的应用
  14. python实现扫码支付_python支付宝页面扫码支付
  15. java sqlite 多线程并发_C#_C#解决SQlite并发异常问题的方法(使用读写锁),本文实例讲述了C#解决SQlite并 - phpStudy...
  16. 震撼,java面试题整合(良心制作)11万多字拿去。持续更新【可以收藏】
  17. 6.20 C语言练习(找出1至99之间的全部同构数。同构数是这样的一组数:它出现在平方数的右边。)
  18. 11个好玩有趣的网站,一打开就停不下来
  19. lol好友列表显示聊天服务器断开,lol聊天服务器断开 英雄联盟聊天服务器连不上解决办法...
  20. idea actiBPM插件生成png文件 右键BPMN转变后缀的XML文件时没有Diagrams选项问题

热门文章

  1. python爬虫抓取头条街拍美女图片
  2. 什么叫做副作用的函数
  3. yara 源码学习(二) 规则编译部分
  4. CSCW领域的“老”词和“新”词
  5. 自动化立体仓库可以为企业带来什么效益?
  6. BT TWS 听音乐无声问题
  7. 悠然乱弹:软件开发杂谈
  8. 成都拓嘉启远电商:拼多多账号异常怎么回事
  9. 美国计算机有读一年的学校吗,美国哪些学校的计算机专业值得读?
  10. 服务办公软件金山偷换“核高基”重大软件专项课题名称,瞒天过海,欺骗大众...