译者: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这种动态类型标识符,不跑起来很难知道到底在干啥。
加注释,做笔记
假如某份源标识符的写作并不是一锤子买卖,日后还可能回顾、重新写作,所以就一定要做好标识符注释和笔记。笔记主要是框架图、类图、流程图,最终目标是建立索引,方便日后加速回忆。
而注释就是写作代码时的技术细节,重新写作的时候看注释(特别是函数的注释)能节省很多时间。