源码怎么用,源码的作用及使用方法介绍

每日英语
我不说话,不代表我心情不好 。有时候我就是喜欢安静 。
我没说话不代表我心情不好 。有时候,我只想安静 。
日常通话 。
你无法改变已经发生的事情,所以不要浪费时间想那么多 。往前走,放手,算了,就这样 。
来自: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的源代码,组织的很好 。基本上,您可以通过查看文件名来快速定位每个命令的实现位置 。


推荐阅读