源码编译锤子-为什么要读源码,如何读源码

获取学习资料

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

源码的意义

源码只是一种方式、手段,而不是目的。 我一开始也给自己定了“阅读xxx源代码”的目标,但现在看起来真的很愚蠢,一点也不聪明(具体的、可测量的、可达到的、相关的、有时间限制的)。 只有明白了阅读代码的目标,才能有的放矢,抓住重点,高效完成任务。

看源码的意义可以概括为包括但不限于以下几点:

源码编译锤子-为什么要读源码,如何读源码

1.解决问题(BUG)

只要是代码,就会有bug,只是说bug多或少,有深有浅。 如今,每个人都喜欢发布和使用开源项目。 不同的开源项目社区成熟度和代码质量会有很大差异。 遇到错误并不奇怪。

事实上,当遇到bug时,首先要在网上搜索类似的问题。 通常可以在Google、StackOverflow、project issues上搜索相应的关键词。如果找不到,就只能看源码解决了

二、知道为什么

我在【如何学习新技术以及选择团队技术时应该注意什么】【链接1】中提到,如果我们需要在自己的项目中使用一个开源项目,那么我们必须了解这个项目的异同,并深入理解原理,对一些细节(尤其是项目的优势和特点)进行深入研究。 如果是成熟的开源项目,遇到问题好像Google一下就能找到很多答案; 但如果是一个快速发展的开源项目,更多地了解其结构和核心原理也有助于快速定位问题。

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

三、学习

看源码也是一个很好的学习方式(虽然不一定是最好的方式),特别是对于比较好的开源项目源码编译锤子,可以让人大开眼界。

虽然是为了学习的目的,但是也有很多注意的地方,比如

语言学习:编码风格、规范、习语、高级句型。 对于某种语言的新手来说,找到熟悉领域的开源项目来深入掌握该语言也是一个好主意。

源码编译锤子-为什么要读源码,如何读源码

学习设计:数据套接字、框架、总体架构

学习理论:算法、协议。 比如我之前写的【raft合约】【raft】,光看论文就很枯燥,但是算法理论和工程实践还是有一定区别的。 事半功倍。

其他

4、转型

一般来说,我们一开始只是使用一个开源项目,但是随着使用的深入,我们会发现我们需要的一些功能并没有得到很好的支持,向项目组提出的问题可能得不到快速的回复。 这时候你就得自己分支,改代码,添加功能。 其实最好是向原项目提交一个自己分支中比较好的新功能的合并请求,反馈开源项目,比如阿里的[Blink][]

五、参考

他山的石头可以用来炼玉。 如果有必要重新开始造轮子,参考一些现有的、优秀的轮子肯定是有好处的。

6. 副产品

这一点不应该成为我们阅读源码的出发点,而且在实践中确实可以成为求职、面试的加分项,可以算是一个副产品。

如何查看源代码

源码编译锤子-为什么要读源码,如何读源码

看源码的目的很大程度上影响着看源码的方法以及需要阅读的代码的范围。 比如说,如果是修复一个线上的bug源码编译锤子,那么阅读代码的范围就紧紧围绕着bug本身; 而如果要理解分布式算法,则需要由大量的节点(进程)来处理,这些节点(进程)可能运行在不同的节点(进程)上。 通过上面的代码来了解其交互原理和工作流程。

下面描述了一些通用方法。

先看文档,总体掌握

一般来说,文档是高度浓缩的代码。 一个高质量的开源软件通常会包含教程、规范、API参考等文档,通过选择性默读和精读这些文档,可以对项目的整体结构和设计原理有一个大概的了解。 正确的路线是通过文档来了解项目,而是通过阅读代码来验证文档、深入细节,而不是通过直接啃源码来了解项目,这样是片面的。

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

当你需要看代码的时候,不要随便找个文件就开始,先看代码结构,简单的看文件名和类名,基本上就可以猜到每一部分了。 比如redis的源码就整理得很好。 基本上通过查看文件名就可以快速定位到每个命令的执行位置。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 源码编译锤子-为什么要读源码,如何读源码 https://www.wkzy.net/game/154615.html

常见问题

相关文章

官方客服团队

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