今天我们就简单说说如何阅读源代码。阅读源代码是每个程序员都应该做的事情。毕竟成为大师的第一步,就是跟着大师走。
学习如何使用它
要想知道一个东西是如何实现的,首先要有一个大概的了解,比如它是什么,大概是怎么用的。所以我们需要先熟悉这个项目,通常我们可以这样做:
读文档阅读已有的优秀文档,可以加快对整个项目的使用、坑、架构的理解,让你快速建立自己对项目的认知。
写demo如果你读一个图书馆的代码呢?我们可以引用这个库,写一些简单的演示,这也是为了加快我们对项目的理解。
熟悉如何使用接下来要做的就是多写一些演示,多使用它们。当项目使用到一定程度,就可以开始阅读源代码了,阅读源代码本身可以促进对项目的熟悉。但是什么时候开始看源码因人而异,没有普适度,会随着自身经验的积累而改变。我个人建议,当你能写好demo,知道demo的每一行都在做什么的时候,就可以同时开始阅读源代码了。如果发现无法理解,可以继续加深对项目使用的熟悉,再试一次。
通常会注意到,项目越大,开始阅读源代码越困难,所以一定要有信心。
接下来主要讲一些常见的阅读源代码的技巧。
从主要功能开始
你的程序是如何工作的?它必须从入口点开始。比如python可能是if __name__ == "__main__ "或者Python后面跟着的脚本名。比如Go通常是主函数,c也是,如果我们在读一个已有的项目而不是库,可以从入口函数开始跟踪代码,看看做了什么。如果是库,我们可以从我们的演示入口跟踪源代码。
然而,应该注意的是,无论是自上而下的方法还是自下而上的方法都不是更好的方法。自上而下的方法是从概述到细节,自下而上的方法是从实现细节到概述。一般来说两者都是结合的,但我个人通常侧重于自上而下,了解大体情况后才会明白具体的实现。
中断点
为了跟踪代码的具体执行步骤,我们可以使用调试器一步跟踪,这样我们就可以看到每个步骤的执行情况。我个人不是特别喜欢这种方法,因为单步跟踪通常更详细。比如在读取Go的运行时,我们可以用这个技术在自己的主函数上做一个断点,然后单步跟踪,这样就可以看到运行时是如何初始化的。
打印调用堆栈
打印调用栈是我最喜欢的方式,因为我主要用的是Go和Python,这两种语言对打印调用栈都很友好。通过调用栈,我们可以一目了然地看到函数是如何从主函数被调用到栈顶的。比如在读取Flask的代码时,我们可以直接在一个处理程序中打印调用栈,要么借助日志库,要么借助调试器,然后就可以很容易地看到程序是如何从app.run运行到某个特定的处理程序的。
打印日志
有时我们可以借助日志来观察程序。根据日志,我们可以大致看到程序做了什么。根据日志的粒度,我们可以不同程度地了解一般情况和细节。一般来说,日志分为五个级别:调试、信息、警告、错误和致命。通常对于分布式应用来说,这是一个很好的调试和了解执行顺序的方法。
合理使用跳跃
跳?编辑用户不享受这种好处。那不行。Vim作为一个强大的编辑器,可以通过微软贡献的YouCompleteMe或Languange Server Protocol来定义跳转。
1.《码怎么读 如何阅读源代码》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《码怎么读 如何阅读源代码》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/caijing/1020811.html