这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
又是周五的早上,阳光明媚。 袁小白走进四面是大白板,中间一台大电视的会议室,熟练的在会议系统上确认着时间。 他总是习惯提前五分钟来到会议室,提前准备着会议室环境和自己要分享的内容。 今天正好是他毕业后一周年的日子,早已习惯了公司的环境和氛围。
打开电脑,看着自己准备的Buildkit调研笔记,让他有点紧张。 因为这是一周的例会,按习惯,大家会继续上次会议留下的主题 - 调研Moby Buildkit架构,而自己对于如何阅读这种大型开源项目源码也是头一回,一周的时间,也就够自己查看和了解一下如何学习源码,还没有涉及到真正的源码,这让他多少有点紧张。
这时又走进两位同事,一位叫龙飞,团队的中坚力量。 另一位叫贾大智,是这个兴趣小组的发起者。 他们掐着点,不早也不晚,时间刚刚好。
一进来,龙飞就对着袁小白打招呼:小白,还是这么早啊,给大家看看我准备的好东西,说着就已经坐在了离门最近的地方,直接分享自己的屏幕了。
哎,着什么急,今天是小白入职一周年,咱们先恭喜一下他。 贾大智连忙提醒到。
哈哈,你不说我差点忘了。 龙飞不好意思的摸着头,又马上阳光灿烂的祝贺着袁小白。
大家嘻嘻哈哈的进了今天的主题 - Moby Buildkit架构分享。
会议室电视上早就显示着龙飞的成果 - Moby Buildkit 流程图:
看着这一屏都显示不完的超长流程图,袁小白一下楞住了。 要知道大家的起点都一样,都没有golang相关的项目经验,为什么龙飞这么快就能读懂源码,并将流程图给输理出来了,真是不敢想像。 从这周查看的源码阅读方法介绍中了解到,确实有一种方法,叫主线阅读法,就是根据你想了解的流程,快速梳理代码调用流程,以弄清楚大致的代码关系。 就像交朋友一样,先有一个大致的了解,然后再深入细节。 但这种方法难度较大,因为需要阅读者能将之前学过的知识融汇贯通,特别是编程语言相关的知识点。
还有一种,就是问题驱动阅读法,通常是带着明确的目的去阅读源码,比如解决某个ISSUE,然后提PR(Pull Request)。 这种方法能高效的达到自己的目的。 但和我们这次阅读源码的需求有点不一样,我们需要的是了解整体结构,补充我们相关的领域知识,好为下一阶段 - PoC(Prove of Concept)做准备。
袁小白的好奇心一下就补勾了起来,来不急细想,忙问道:龙飞,你是怎么在短短一周的时间里面,就梳理出了主流程时序图的?