源代码怎么使用,使用源代码的意义和好处

由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码、如何看源码这两个问题的思考。 看源码的意义 看源码只是一种方法、手段,而不是目的。我也曾经给自己制定过“阅读xxx源码”的目标,现在看起来真的很蠢,一点不smart(specific、measurable、attainable、relevant、time-bound)。只有搞清楚了阅读代码的目标,才能有的…

为什么要读源代码,如何阅读源代码

因为项目的要求,近期花了较多的是时长看来开源项目的代码,在这篇文章中,简易总结一下对为何要看源码、如何看源码这两个问题的思索。

看源码的实际意义

看源码仅仅一种方式、方式,而非目地。我也曾经为自己制订过“阅读xxx源码”的总体目标,如今看上去很蠢,一点不smart(specific、measurable、attainable、relevant、time-bound)。仅有弄清楚了阅读代码的总体目标,才可以以问题为导向,抓住重点,高效率达到每日任务。

看源码的实际意义汇总下去包括但不限于以下几个方面:

一、解决困难(BUG)

只需是代码,便会有bug,仅仅说bug的多与少、深与浅而已。如今大家都喜欢公布、应用开源项目,不一样的开源项目小区成熟情况、代码品质又会有比较大的差别,碰到bug就习以为常了。

自然,碰到bug肯定是先往网上搜索是不是有相似的难题,一般能够在google、Stack Overflow、项目的issues里边有相应的搜索关键词。假如找不到,那么就只有看源码解决了

二、学有所用

我还在[怎样学习新技术应用、精英团队技术性型号选择时要注意些什么][Link 1]里边提及过,假如我们应该将一个开源项目使用自身的项目中,那么就务必掌握此项项目的优缺点,并自知基本原理,对一部分关键点(特别是项目的优点、feature)开展深入分析。如果是完善的开源项目,遇到问题或许能google到许多回答;但如果是一个处在迅速发展里的开源项目,多掌握其构架、关键基本原理,也可以协助快速定位难题。

此外,有些项目文本文档可能不那样丰富多彩,但又必须应用,那样如何以正确的姿势应用呢?也得参照源码

三、学习培训

看源码也是一种很好的学习方法(尽管不一定并不是最好的方法),特别是针对较为杰出的开源项目,能让人惊叹不已。

即使是出自于学习的目的,都是有许多偏重于的,例如

语言学习:代码设计风格、标准、常用法、高端英语的语法。针对某一语言表达的初学者,找一个了解行业的开源项目来深层次把握这门语言表达,都是一个很好的留意。

学习设计:api接口、架构、整体架构

学习理论:优化算法、协议书。例如我以前写过的[raft协议书][raft],光看论文是很枯燥的,并且优化算法基础理论到工程实践或是有一定的差异,这个时候融合开源项目([mongodb][])完成通常更事倍功半。

别的

四、更新改造

一般来说,大家一开始只是应用一个开源项目,但由于采用的深层次,会看到一些自身必须的作用并没非常好的适用,向项目组提的issues也有可能无法得到迅速的反应,这个时候就需要自己开支系,改代码,加作用了。自然,比较好的是由自身支系比较好的新feature 给原项目提merge request,哺育开源项目,例如阿里巴巴的[Blink][]

五、参考

它山之石可以攻玉,假如有必须从头开始自身代码重构,那样参照一些已经有的、出色的车轮子肯定是有帮助的。

六、副产物

这一点,不应该做为大家阅读源码的立足点,可是的确能在具体中对找个工作、招聘面试有加持,算得上副产物吧。

如何看源码

看源码的目地非常大水平上影响了看源码的方法、必须阅读的代码的范畴。例如,如果是为了能修一个网上bug,那样阅读代码的标准就重点围绕bug自身;而如果是为了能掌握某一分布式系统优化算法,那么就必须按很多的、很有可能运作在不一样连接点(过程)里的代码,掌握其互动基本原理、工作内容。

接下来说一些常用的方式。

首先看文本文档,总体掌握

一般来说,文本文档应该是代码的相对高度凝炼,一个高质量开源系统一般会包括tutorial、specification、API reference等documents,根据可选择性的粗读、选读这种文本文档,就可大概掌握项目的整体架构、设计原理。准确的线路是通过文本文档去了解这一项目,然乎根据阅读代码去认证文本文档、深层次关键点,而非根据立即啃源码来认识这一项目,断章取义。

了解代码机构,文件夹名称,类名

当必须看代码的情况下,不必找到一个文档就逐渐,先看看代码机构,粗略地看一下文件夹名称、类名,基本上就可猜测到每一部分。例如redis的源码就机构得很好,大部分看文件夹名称就能够快速定位每一个command的完成部位。

关心一个问题,从难题跟踪代码

看源码的总体目标取决于此刻的侧重点,不论是处理碰到的bug或是学习培训某一优化算法,都使我们对焦到一个实际的情况,从这一实际的情况去跟踪代码,忽视掉现阶段不用关心的细微末节,一步步深层次,直通总体目标。自然在处理一个问题的情况下,有可能引起一个新的难题,特别是学习的时候,这时只需纪录新问题(放进搜集篮,不必马上散发),待以前跟踪的问题处理以后,再看来新发现的问题。

处理一个issue

要是自身没有问题,那么就帮助处理别人的难题,一般而言,开源项目都是有很多待处理的issue,从这当中选择一个下手就可以。

调节

只需能够,一定先让代码编译程序根据、跑起来,那样不论是加log、打印出启用栈或是断点调试都便捷许多。特别是针对像python这类动态性种类代码,不跑下去难以了解究竟在做什么。

加注解,记笔记

假如某份源代码的阅读并非一锤子买卖,日后还可能回望、再次阅读,那么就一定要搞好代码注解和笔记。手记目的是为了架构图、类图、流程表,目标是建立索引,便捷日后迅速追忆。而注解便是阅读代码时的关键点,再次阅读的情况下看注解(尤其是函数公式的注解)能减少许多时长。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年7月16日 下午3:18
下一篇 2022年7月16日 下午3:22

相关推荐

  • 自动洗碗机价格大概是多少(质量口碑最好的洗碗机品牌介绍)

    日前,米家官微放出预告称,小米商城将在2月26日(本周三)上架两款清洁新品,目前两款新品已经在小米商城众筹上架,它们分别是:米家互联网洗碗机(8套嵌入式)、米家互联网洗碗机(4套台面式)。 其中,米家互联网洗碗机(8套嵌入式)采用6D高配置,拥有3层螺旋水路,号称清洁更彻底。而且容量大,汤锅和饭煲内胆都能洗净。 此外,米家互联网洗碗机(8套嵌入式)在洗碗后还会进行PTC热风烘干,拿出时不再湿漉漉,…

    2022年9月8日
    470
  • 软文营销流程有哪些,软文广告经典案例分析

    许多企业和个人都想要做软文营销,但是大多数人对于如何做好软文营销都是一知半解,本文就从软文营销流程上告诉你,如何做好软文营销。 一、软文营销调研 “没有调查就没有发言权”,调研的重要性就不再过多叙述了。千鸟软文主要说一下软文营销调研涉及到哪些方面。 1、企业内部调研 内部调研主要调查企业的创建历史、商业模式、经营范围、企业资质、经营业绩、企业荣誉、组织架构、领导人资料、客户群体、管理模式、办公环境…

    2022年5月21日
    1460
  • 脚本是什么东西,优秀分镜头脚本范例分享

    对于一些短视频创作团队刚开始拍摄短视频时,只是想到什么就开始拍摄什么,并没有在拍摄前写脚本的概念。并且小雨也经常遇到一些朋友问,短视频还需要写脚本吗?答案是肯定的,那么今天小雨就跟大家说一些,什么是脚本。 1、脚本的概念 在电影和广告制作中,脚本是众所周知的工具:它们由来已久,似乎和电影、动画的历史一样长,从有影视作品以来,影视脚本就相伴而存。一般来讲,影视脚本主要分为拍摄提纲、分镜头脚本以及文学…

    2022年6月13日
    840
  • 淘宝短链接怎么生成(淘宝微信链接制作方法)

    随着社交平台的快速发展,很多人都通过社交平台来快速出货,QQ彻底变成了一个邮箱,更多人选择通过微信来拓展自己的出货渠道! 今天我们就分享一种近年来在朋友圈特别多的推广方式!淘宝客的推广!对于淘宝客我便不做过多解释,不懂得朋友请自行百度! 不墨迹了,直奔主题!由于腾讯和阿里的竞争关系,淘宝客的推广主要是通过淘口令的淘宝的链接,刚开始还可以在朋友圈里推广,慢慢的就被腾讯给屏蔽了,好多阿里的东西都会被屏…

    2022年6月2日
    930
  • 淘宝商品排名靠前的方法,这三个技巧让商品排名轻松提升

    各大中小卖家肯定都在为排名靠后发愁吧?排名靠前那宝贝就会获得更多展示的机会,就会有更多的流量,更多的转化。但是现实却是不少大牌牢居前列,难道靠前的淘宝排名名单中真的就没有中小卖家的一席之地?别灰心,做好这三点还是有可能的。 1.选出每个时期的热词优化标题 每个关键词都是不同的,所以每个时期的每个数据也都是不同的。所以卖家可以通过生意参谋中的热词榜,找到最近7天的无线端数据,重点看搜索人气和点击率这…

    2022年9月18日
    330
  • 品牌策略有哪些,常用的七种品牌策略分析

    品牌策略是一系列能够产生品牌积累的企业管理与市场莒消方法,包括4P与品牌识别在内的所有要素。主要有品牌化决策、品牌使用者决策、品牌名称决策、品牌战略决策、品牌定位决策、品牌延伸策略。 CIS系统 1.品牌有无策略〔ToBrandorNottoBrand) 一般来讲,现代企业都建立自有自己的品牌和商标。虽然这会使企业增加成本费用。许多企业对其产品不规定品牌名称和品牌标识,也不想注册登记,实行非品牌化…

    2022年8月1日
    930
  • 如何解开手机密码锁,四招轻松破解手机密码锁

    你是否有过忘记手机解锁密码的经历?在小编刚刚接触Android手机的时候,就对它的图案解锁十分好奇,设置了一个比较复杂的图案,可惜设置没多久就忘记了,最后只能刷机解决。 经过几年的发展,Android设备苹果手机和大为流行,几乎人人都有一智能手机,肯定也会有人经常忘记密码,那么手机锁屏密码忘记了怎么办呢,小编也特别搜集了几个解决手机密码忘记的方法和大家共享。 首先,我们先来讲讲安卓手机忘记密码,怎…

    2022年10月4日
    600
  • 流程图免费制作软件有哪些(手机平面设计制图软件推荐)

    流程图用什么软件做比较好 日常办公中流程图算是比较常见的一种图表了,公司领导在开会的时候基本上都会用到它,像是采购,就有采购流程;财务付款,就有付款流程。 有的小伙伴可能知道Word和PPT都是可以绘制流程图的,但是绘制出来的都是千篇一律,丝毫没有任何特色。这里推荐一个既可以轻松完成流程图、思维导图、组织架构图等图表,还有海量流程图模板供你使用。无论你需要画基本流程图、工作流程图、跨职能流程图、数…

    2022年5月12日
    1090
  • 什么网游适合平民赚钱,适合平民玩的大型网游推荐

    2016年,在网游搬砖界发生了一件震惊全圈的事情:一位DNF玩家晒出自己搬砖8年的积蓄,换了郑州三环的一套房子,此举秀出了网游搬砖的至高境界,壕无人性、令人羡慕。 如今,时间马上就要来到2020年,当手游狂潮席卷而来,端游的日子似乎越来越难,很多网友觉得当年电脑五开欢乐搬砖的日子恐怕一去不复返了。然而在2019年端游却出现了复苏的迹象,这大概是经历了手游狂欢之后,越来越多的玩家领悟到了端游品质更高…

    2022年9月1日
    710
  • 怎么样网络推广品牌,网络推广的方式与技巧

    如今,网络营销的方式多种多样。您可以采取多种方位、多连接的方式进行推广。那么如何做网络推广,哪些是有效的呢?下面的编辑为你解释几种常见的推广(yiqihang.cn)方法: 网络推广1.SEM(搜索引擎营销)搜索引擎营销:英文搜索引擎营销,我们通常简称为“SEM”。它是利用用户的机会,根据用户使用搜索引擎的方式检索信息,将营销信息尽可能多地传递给目标用户。 网络推广2.信息流广告feed广告是指在…

    2022年6月16日
    570

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信