很高兴抽个时间说说这个话题。对于普通码农来说每天的工作只是完成衡量的标准任务,那么你完全不需要去深究开源项目的源码,而对于资深码农来说应该有意识的去阅读源码来增加自己的眼界。本人从事十年后端工作、五年的架构工作,仅仅是个人的一点经验之谈,不对之处请谅解,总结出来三要点:
-
Project Architecture Diagram(项目架构图) 最典型的就是Apache的顶级项目,几乎所有的项目都包含一副架构图,并且定义项目的应用特点和解决场景,接下来就是QuickStart, Architecture, Concepts, Documention, Reference ...,所以首要任务是搞清楚项目的整体架构,各部分的作用以及请求数据的流转情况。。。
-
Project Main entrance Method(项目主入口)无独有偶,一切的演变都有一个最开始的入口,无论小到是一个执行文件还是容器级别的初始化都应该着眼于程序的入口,最为经典的就是资源的装载和容器初始化情景,然后逐步展开各级生命周期抽象到具体实现连接器识别。。。
-
Release Log(发布版本日志说明)老外的标准就是所有的东西都不是一蹴而就的,版本概念很重要。无论版本是从0到0.1还是到1,都有版本迭代日志说明,曾经遇到最为深刻的是Mongodb的一个问题,版本差异只在一个迭代,绞尽脑汁后查阅官网版本日志才发现生产环境用的版本低了一个迭代,紧急更新后症状消失。。。为什么罗列这三点呢?因为当你在看源码的时候不妨脑中铭记这三根弦,这样你在看源码的时候边看边记录思维导图,这样养成习惯阅读源码就会引刃而解,抓住这三个要点无论是何种形式,学的快而深刻才是硬道理。学习源码不光是更好的理解源码、更为重要的是学习优雅的智慧设计。不说了,先这样。。。