有了源码该如何使用,源码使用教程

每天早上00: 00,我都会第一时间和你见面。每日英语就因为我’我不说话,不是吗?不代表我’我心情不好。有时候我就是喜欢安静。我没说话不代表我心情不好。有时候,我只想安静。日常通话。你无法改变已经发生的事情,所以不要浪费时间想那么多。往前走,放手,算了...

每天早上00: 00,我都会第一时间和你见面。

每日英语

就因为我’我不说话,不是吗?不代表我’我心情不好。有时候我就是喜欢安静。

我没说话不代表我心情不好。有时候,我只想安静。

日常通话。

你无法改变已经发生的事情,所以不要浪费时间想那么多。往前走,放手,算了,就这样。

来自:xybaby |编辑:乐乐

链接:cnblogs.com/xybaby/p/10794700.html

程序员小乐(ID:study_tech)的第751条推文来自Pexels

往期回顾:[插图] 6张图明白为什么TCP三次握手而不是两次握手了!(阳性版)

主体

由于项目的需要,我最近花了更多的时间看开源项目的代码。在本文中,我简要总结了我对为什么以及如何查看源代码的想法。

看看源代码的意义

看源代码只是一种方法,一种手段,不是目的。我曾经给自己定下“看完xxx源代码”的目标,现在看来真的很傻,一点都不聪明(具体、可衡量、可达到、相关、有时限)。

只有阅读代码的目标明确,才能有的放矢,抓住重点,高效完成任务。

看源代码的意义。总结起来,包括但不限于以下几点:

首先,解决问题(BUG)

只要是代码,就会有bug。只是bug或多或少,或深或浅。现在,每个人都喜欢发布和使用开源项目。不同的开源项目有不同的社区成熟度和代码质量,遇到bug也就不足为奇了。

当然,如果遇到bug,一定要先上网搜索类似问题。一般可以在google中搜索相应的关键词,栈溢出,项目的问题。如果找不到,就只能看源代码了。

第二,知道为什么。

我在【如何学习新技术,选择团队技术需要注意什么】【链接1】中提到,如果我们需要将一个开源项目应用到自己的项目中,那么我们必须知道这个项目的优缺点,熟知原理,对一些细节(尤其是项目的优点和特色)进行深入研究。

如果是成熟的开源项目,遇到问题也许可以google很多答案;但是,如果是快速开发中的开源项目,多了解一下它的架构和核心原理,也有助于快速定位问题。

另外,有些项目文档可能没那么丰富,但又不得不用,那么如何以正确的姿势使用呢?也参考源代码。

第三,学习

看源代码也是一种很好的学习方式(虽然不一定是最好的方式),尤其是优秀的开源项目,可以让人大开眼界。

即使是以学习为目的,也有很多重点,比如

语言学习:代码风格,规格,成语,高级语法。对于某一门语言的新手来说,找一个熟悉领域的开源项目来深入掌握这门语言也是一个不错的办法。

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

学习理论:算法和协议。比如我之前写的【raft协议】【raft】。只是看论文很枯燥,算法理论和工程实践还是有一定差距的。这时候结合开源项目([mongodb][])实现往往更有效。

四。转换

一般来说,在开始的时候,我们只使用一个开源项目,但是随着使用的深入,我们会发现我们需要的一些功能并没有得到很好的支持,向项目团队提出的问题也不一定能得到快速的回应。这时候就要自己开分支,自己改代码,自己加功能。

当然,最好是给原项目一个合并请求,用一个好分支的新特性,反馈开源项目,比如阿里的[Blink][]

五、借鉴。

如果你需要重新开始打造自己的轮子,参考一些现有的优秀轮子肯定是有好处的。

不及物动词副产品

这不应该作为我们看源码的出发点,但在实践中确实能为求职面试增值,也算是副产品。

如何阅读源代码

阅读源代码的目的很大程度上影响了阅读源代码的方式和要阅读的代码范围。比如,如果是修复一个在线bug,那么阅读代码的范围就紧紧围绕bug本身;要想理解一个分布式算法,就需要根据可能运行在不同节点(流程)上的大量代码来理解它的交互原理和工作流程。

下面是一些通用的方法。

先看文件,整体把握。

一般来说,文档对代码高度简洁,一个高质量的开源通常包含教程、规范、API参考等文档。通过对这些文档的选择性略读和精读,可以大致了解项目的整体架构和设计原则。

正确的路线是通过文档来了解这个项目,但是通过阅读代码来验证文档和深入细节是偏的,而不是直接啃源代码来了解这个项目。

了解代码组织、文件名和类名。

当你需要看代码的时候,不要找一个文件就开始。先看代码组织,粗略看文件名和类名,基本上每个部分都能猜到。比如redis的源代码,组织的很好。基本上,您可以通过查看文件名来快速定位每个命令的实现位置。

注意一个问题,从问题开始追溯代码。

看源代码的目标决定了这一刻的重点。无论是解决一个bug,还是学习一个算法,让我们专注于一个具体的问题,从这个具体的问题追溯代码,忽略目前不需要关注的细节,一步一步深入,达到目标。

当然,在解决一个问题的时候,可能会引出新的问题,尤其是在学习的时候。这时候就把新出现的问题记录下来(放在收集篮里,不要马上传播)。之前跟踪的问题解决后,再看新发现的问题。

解决问题

如果你没有问题,那就帮助解决别人的问题。一般来说,在开源项目中有很多问题需要解决,所以你可以选择一个开始。

接受初步测试

只要有可能,代码一定要先编译运行,这样无论是添加日志、打印调用栈还是断点调试都方便很多。尤其是python这样的动态类型代码,不运行很难知道自己在做什么。

注释,做笔记

如果一个源代码的阅读不是一蹴而就的,而且有可能在将来进行复查和重读,那么你必须做代码注释和笔记。笔记主要是框架图,类图,流程图,目的是建立索引,方便以后快速回忆。

注释是阅读代码时的细节。复读的时候读注释(尤其是函数的注释)可以节省很多时间。

请在留言区留下您的看法,共同讨论改进。如果今天的文章给了你学习能力提升的新启发和新知识,请分享给更多的人。

估计你还想看吧?

阿里、腾讯、百度、华为、JD.COM最新面试问题合集

Java上的try,catch,最后在细节分析,看完都说好!

IDEA热部署中JRebel的安装和破解教程

我终于明白为什么要加最后一个关键词了!

本文来自西绿柿投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/609056.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-27
下一篇 06-27

相关推荐

  • 电脑键盘怎么打单引号 英文单引号在键盘上使用

    1、单引号(’‘)单引号是所见即所得,直接把单引号里的内容显示出来。即单引号中的任何字符都将按原样输出,单引号中的变量无效。例如,在下面的示例中,您看到的是使用单引号得到的结果。2.双引号(”“)双引号用于在输出变量之前解析变量。在上面的例子

    2023-08-17 15:53:29
    383 0
  • 网站推广工具有哪些 免费使用seo软件

    平面设计有相应的工具,网站优化我们也有。促进常用seo工具的合理使用,网站优化会更容易,优化效果会更理想。很多站长觉得自己的工作很辛苦,找不到方向。看着别人轻松的做是有效果的,可能要花更多的时间才能做好。随着计算机互联网行业的不断发展,在线营销和传统的线下营

    2023-07-28 14:07:01
    488 0
  • 绿联的产品怎么样 绿联充电宝使用体验分享

    对于我这种机不离身的人,定位器快没电时整个人都不好了,尤其是出差在外的时候,定位器没电更是件恼火的事,所以,双十一果断入手了绿联家的这款自带线充电宝。自带充电宝应该是在共享充电宝出现之后才开始流行的。现在居然一小时8块钱。我的天,这简直就是抢钱,买个自带充

    2023-07-28 11:45:01
    1022 0
  • 途岳使用什么发动机

    途悦是大众旗下的一款紧凑型suv。它使用两种发动机,一种是14升涡轮增压发动机,另一种是20升涡轮增压发动机。悦的轴距为2680 mm,长宽高分别为4453mm、1841mm、1632 mm。悦的14升涡轮增压发动机最高功率110kw。途悦是大众旗下的一款紧凑型suv。这款车采用两款发动机,一款是

    2023-07-28 07:31:01
    324 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

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

关注微信