zoukankan      html  css  js  c++  java
  • 阅读源码通用技巧

    (1)将源码下载下来,导入一个IDE中(Eclipse或IntelliJ IDEA),保证项目别报错,maven或gradle来下载需要的依赖。gradle构建的项目,用gralde处理一下;maven构建的项目,mvn eclipse:eclipse。

     

    (2)接着就直接按照我们平时使用这个技术的过程,比如启动或者调用API,来在源码里直接写一些demo,来打断点调试,根据源码运转的流程,进入源码里去阅读。看看人家的单元测试或者集成测试的代码,从这些测试类来作为入口,调用各种核心的功能,你就跟着这些测试,把核心的功能,给读一遍。

     

    (3)从一个HelloWorld开始阅读源码,HelloWorld一般代表了这个技术最核心的功能,先把HelloWorld的流程读懂

     

    (4)一边读源码,一边写中文注释,一边画图,就是源码的整体架构设计,包含哪些类,每个类代表了系统里的什么组件,然后层次结构,依赖关系,全都画出来,可以给整个系统画一个大的静态图,还可以针对每个部分画一些细节的静态图。就是将整个系统运转的流程画出来,先干嘛,再干嘛,谁调用谁,一步一步如何完成一个功能的。这个图都画出来了,那么你对整个源码的架构设计以及运行流程,就全都了如指掌了。会画很多副图出来,eureka,先看eureka server的启动,画一幅图;eureka client,服务注册,画一幅图;eureka client,服务发现,画一幅图;eureka server集群模式,画一幅图;服务跟注册中心之间的心跳机制,画一幅图;eureka的自我保护机制,画一幅图。

     

    (5)寻找源码中的各种技术亮点,比如说设计模式的使用,或者是零拷贝技术的运用,或者是TCP通信的机制,或者是磁盘读写的机制,等等吧。对各种复杂的机制或者是技术的亮点,全部独立进行总结,要进行画图和文字的总结。

     

    (6)HelloWorld驱动的核心流程的源码读完之后,就可以阅读周边的一些高级特性相关的源码,此时就会容易很多了,具体流程跟上面是类似的。

     

    (7)这个过程结束之后,你能读通读透一个开源项目的源码,你的技术功底就深厚了很多;同时你对这个开源技术的架构设计、运行原理、实现细节、复杂机制全都了如指掌,那么你在公司里就可以hold住全场了;而且你在阅读了人家的架构设计之后,学习了人家的各种复杂机制实现之后,你再次自己设计系统的时候,自动就会借鉴别人的思想,来设计你自己的系统哦;最后就是,你如果出去面试,那简直是可以秒杀面试官了,源码的理解全部说出来,面试官绝对会听得一愣一愣的。1359

  • 相关阅读:
    cacti汇总流量图-将数据合并后作图
    Linux下查看磁盘与目录的容量——df、du
    Nagios
    Linux下的压缩和解压缩命令——jar
    Linux下的压缩和解压缩命令——tar
    Linux下的压缩和解压缩命令——compress/uncompress
    Linux下的压缩和解压缩命令——gzip/gunzip
    Linux下的压缩和解压缩命令——bzip2/bunzip2
    Linux下的压缩和解压缩命令——zip/unzip
    Nagios安装
  • 原文地址:https://www.cnblogs.com/q1359720840/p/14809927.html
Copyright © 2011-2022 走看看