为什么要看源码、如何看源码,高手进阶必看

2023-08-23 0 674

译者:xybaby

www.cnblogs.com/xybaby/p/10794700.html

由于工程项目地需求,前段时间花了非常多的时间来看开放源码工程项目地标识符,在责任编辑中,单纯归纳一下对为何要看源标识符、怎样看源标识符这两个难题的思索。

看源标识符的象征意义

看源标识符而已一种方法、方式,而不是目地。我也曾给他们制订过“写作xxx源标识符”的最终目标,那时看上去吗蠢,一点不smart(specific、measurable、attainable、relevant、time-bound)。

只有弄清楚了写作标识符的最终目标,就可以有的是放矢,紧紧抓住重点项目,高效率达成一致各项任务。

看源标识符的象征意义归纳起来包涵但不局限于几点:

一、化解难题(BUG)

只要是标识符,就会有bug,而已说bug的多与少、深与浅而已。那时大家都讨厌发布、采用开放源码工程项目,不同的开放源码工程项目街道社区适用性、标识符产品质量Ploudalm较大的差别,碰到bug就不难理解了。

总之,碰到bug的确是先在网路上搜寻与否有类似于的难题,一般可以在google、Stack Overflow、工程项目地issues里头有相关联的关键字搜寻。假如搜不出,所以就根本无法看源标识符化解了

二、博奈

我在[怎样自学新技术、项目组技术THF1时要特别注意些什么][Link 1]里头提及过,假如我们需要将两个开放源码工程项目加进他们的工程项目中,所以就必须介绍此项工程项目地优劣,并有感于基本原理,对部分技术细节(特别是工程项目地竞争优势、feature)进行深入探讨。

假如是成形的开放源码项目,碰到难题或许能google到很多标准答案;但假如是两个处于加速发展中的开放源码工程项目,多介绍其构架、核心理念基本原理,也能协助加速韦谢列。

另外,有的是工程项目文件格式可能不所以多样,但又不得已采用,所以怎样以恰当的坐姿采用呢?也得参照源标识符

三、自学

看源标识符也是一种不错的自学方式(虽然不一定不是最佳的方式),特别对于比较优秀的开放源码工程项目,能让人大开眼界。

即使是出于自学的目地,也是有很多侧重的,比如

自学语言:标识符风格、规范、惯用法、高级语法。对于某个语言的新手,找两个熟悉领域的开放源码工程项目来深入掌握这门语言,也是两个不错的特别注意。

自学设计:数据接口、框架、整体构架

自学理论:算法、协议。比如我之前写过的[raft协议][raft],光看论文是很枯燥的,而且算法理论到工程实践还是有一定的差距,这个时候结合开放源码工程项目([mongodb][])实现往往更事半功倍。

四、改造

一般来说,我们刚开始仅仅是采用两个开放源码工程项目,但随着采用的深入,会发现一些他们需要的功能并没有很好的支持,向工程项目组提的issues也可能得不出加速的响应,这个时候就要他们开分支,改标识符,加功能了。

总之,比较好的是将他们分支比较好的新feature 给原工程项目提merge request,反哺开放源码工程项目,比如阿里的[Blink][]

五、借鉴

他山之石可以攻玉,假如有需要重新开始他们造轮子,所以参照一些已有的是、优秀的轮子的确是有好处的。

六、副产品

这一点,不应该作为我们写作源码的出发点,但是确实能在实际中对找工作、面试有加成,算是副产品吧。

为什么要看源码、如何看源码,高手进阶必看

怎样看源标识符

看源标识符的目地很大程度上影响了看源标识符的方式、需要写作的标识符的范围。比如说,假如是为了修两个线上bug,所以写作标识符的范围就紧紧围绕bug本身;而假如是为了介绍某个分布式算法,那就需要按大量的、可能运行在不同节点(进程)上的标识符,介绍其交互基本原理、工作流程。

下面说一些通用的方法。

先看文件格式,整体把握

一般来说,文件格式是对标识符的高度凝练,两个高产品质量的开放源码一般会包涵tutorial、specification、API reference等documents,通过选择性的略读、精读这些文件格式,就能大致介绍工程项目地整体构架、设计原则。

恰当的路线是通过文件格式去认识这个工程项目,然乎通过写作标识符去验证文件格式、深入技术细节,而不是通过直接啃源标识符来介绍这个工程项目,以偏概全。

理解标识符组织,文件名,类名

当需要看标识符的时候,不要找到两个文件就开始,先看看标识符组织,粗略看看文件名、类名,基本就能猜测到每一部分。比如redis的源标识符就组织得很好,基本上看文件名就可以加速定位每两个command的实现位置。

总之在化解两个难题的时候,有可能会引发新的难题,尤其是自学的时候,此时只需记录新难题(放到收集篮,不要立即发散),待之前追踪的难题化解之后,再来看新发现的难题。

化解两个issue

假如他们没有难题,所以就帮忙化解别人的难题,通常来说,开放源码工程项目都有许多待化解的issue,从中选择两个入手即可。

调试

只要可以,一定先让标识符编译通过、跑起来,这样不管是加log、打印调用栈还是断点调试都方便很多。特别是对于像python这种动态类型标识符,不跑起来很难知道到底在干啥。

加注释,做笔记

假如某份源标识符的写作并不是一锤子买卖,日后还可能回顾、重新写作,所以就一定要做好标识符注释和笔记。笔记主要是框架图、类图、流程图,最终目标是建立索引,方便日后加速回忆。

而注释就是写作代码时的技术细节,重新写作的时候看注释(特别是函数的注释)能节省很多时间。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务