编程常被称作“写代码”,但这容易让人误以为“敲键盘”就是开发的全部。实际上,编码前的设计、编码后的调试,以及阅读他人代码,往往占据更多时间。
关于调试(debug),我们在之前的文章里已经有过讨论。今天重点聊聊另一个被低估的能力:读代码。
为什么要读代码
读代码有两种驱动力:一种是开发过程中的被动需求,另一种是主动的自我提升。
绝大多数项目需要多人协作,你不得不阅读同事的代码来理解接口和实现。即便分工清晰,也难免要接手他人的模块,或者在使用第三方库时,当文档和搜索引擎都解决不了问题,源码就成了最后的答案。这些都是被动的。
而主动阅读,价值更大:
-
提高编程能力。学习始于模仿。无论是入门时对着教程里的示例勤敲代码,还是进阶时钻研优秀项目的源码,都是高效的成长路径。没有标杆,自己闷头造车,往往事倍功半。
-
提高 debug 能力。能读懂代码,才能在排查问题时快速定位逻辑漏洞。阅读本身就是一种需要刻意练习的能力。
-
塑造良好的代码风格。Python 追求优雅,Python 之禅开篇就强调“Readability counts”(可读性很重要)。真正的开发不仅要写出可执行的代码,更要写出别人读得懂的代码。想写出足够 pythonic 的代码,离不开对优秀源码的揣摩。

-
创造交流与成长的机会。阅读别人的代码多伴随着讨论,帮别人看代码对自己也是提升。更进一步,你完全可以通过阅读源码,参与开源项目,与高手过招。
如何读代码
读代码是门手艺,这里分享几条实用经验:
-
带着目的去读。刚入门的阶段,还是应该以系统学习为主,把语法、数据结构、函数、模块这些基础打牢。等到可以读源码时,选择难度适中、自己熟悉或感兴趣的方向起步,在精而不在多。
-
自上而下,由表及里。拿一个外部库来说,正确的顺序是:先读文档,搞清它解决什么问题、有哪些功能;再看示例代码,了解如何使用;最后才深入源码。阅读源码本身,也应该先看文件结构和模块划分,再看类、函数的组织方式,最后才深入实现细节。
-
了解基本的设计模式。设计模式不是具体的编码技巧,却普遍存在于成熟的代码中。找本通俗易懂的教程(比如《Head First Design Pattern》)读一读,再回看源码,你会更容易理解那些“为什么这么设计”。
-
挑一个趁手的编辑器。没人会用记事本去读源码。像 PyCharm 这样的 IDE,跳转到函数定义、查找引用、断点调试这些功能必须熟练。另外提一下,代码折叠是一个被低估的好功能,能让你更清晰地把握整体结构。

-
动手改一改。单向地看是低效的,更好的方式是边看边改。哪怕只是加一行简单的输出,先猜想某段代码的效果,再通过修改运行来验证,这样的交互才能真正锻炼你对代码的理解。
-
默写,再对比。觉得自己看懂了?那就关掉源码,从头实现一遍,然后和原代码对比。很多同学说“代码能看懂,就是自己写不出来”,其实关键就在于你只读懂了每一行的字面,却没有理解整个设计。从简单的例子开始,反复练习这个过程。
读哪些代码
那么,具体该从哪里开始读呢?
-
教程里的代码。新手别总想着一口吃成胖子。挑一本口碑不错的教程,把从头到尾的示例代码认真地阅读、理解、手打运行。这是最简单有效的方法,但真能坚持做到的,其实比想象的少。
-
官方示例和 Quick Start。大多数优秀项目都附带了详尽的文档和快速入门引导。学习初期,这些就是最好的范本。比如我们介绍过的 requests 库,它的文档不仅清晰,还提供了中文版本。
-
Python 的内置代码。用 PyCharm 这样的 IDE,你可以一键跳转到 Python 自身的源码。文中截图就是 random.py 的内部实现。从这类单文件的标准库代码读起,难度十分友好。
-
优秀的第三方库。进阶时可以尝试一些精巧的项目。比如大神 Kenneth Reitz 的 requests、records、envoy 等小工具,都很适合阅读。还有一个经典的项目合集叫 500 line or less,里面的项目都不超过 500 行,地址: github.com/aosabook/500lines
-
关于代码风格,可以先读这份指南:
https://pythonguidecn.readthedocs.io/zh/latest/writing/style.html#code-style
以上就是关于“读代码”的一些经验和建议。更多编程交流,欢迎访问 云栈社区。
|