跳转至

关于阅读源码的一点心得

朋友们,阅读优秀的源码可以学到很多,例如代码的结构组织、设计模式、为了解决一些问题特殊处理、写法技巧、优化策略等,同时也扩展了对编程语言的熟悉程度、关于这个项目的解决问题思路。

本文主要记录和分享一些我阅读代码过程中的心得,包括如何阅读代码、利用阅读代码工具、如何选择一些代码库阅读。

如何阅读代码

阅读代码的过程,就像是探案寻找嫌疑人、破解敌人的阵法、又或者欣赏一件艺术品。如果没有思路、一头扎进去,或者变成了按顺序读代码,就会眼睛痛、头发晕了,很难进行下去。

  • 带着问题或者目标去阅读代码,大型代码库都是由很多人开发的、由很多功能组成,特别庞大,需要由问题切入。比如这个代码库中如何实现某个功能的?比如Pytorch中如何使用cudaIpc功能的?比如LLM推理库中如何实现投机采样的?

  • 不推荐顺序读代码,比如打开一个文件,从头开始往后读,一个一个文件读。

拿C++的一个文件来说,可能由一个类或者多个类,里面包括了核心函数、工具辅助函数、用的少的函数变量等。有些函数变量对解决的你问题没有任何意义,按顺序阅读就会增加混乱度。推荐根据类和方法的调用关系,不断的跳转,查看代码如何实现和解决问题的。

  • 对于一个不了解的项目或者库,推荐可以从测试看起、先从用起来的角度,去理解这个项目是干嘛的,它能够解决哪些问题。在这个过程中,你就会去查阅它的文档(readme、blog)以及熟悉API用法。同时也会带给你很多问题,让你作为切入点阅读源码。

阅读代码工具的利用

  • github1s

  • sourcegraph

  • command等软件

如何选择阅读的代码库

兴趣、技能提升、结合工作中的需求(或者未来工作的发展情况)

评论