使用 snoop, 像读文章一样读源码。

不得不说 开源项目没有一个提纲 , 看起来太操蛋了。问了作者, 作者说 , 你运行下主函数, 然后慢慢跟 。。。
image.png

没有目的地概览 , 不知不觉就追究到细节里面去了。

image.png

所以这一篇文章的目地就是 , 如何在没有提纲的情况下 , 能更好的只关注流程 , 而不是细节 。

开始 :

  1. python DEBUG 模块介绍 :
     前段时间看过挺多文章提到 pysoonper 这个调试模块,有兴趣的可以百度一下.
    个人尝试了一下,篇幅过大的 DEBUG 不适合用 pysoonper , 因为没有缩进!
     这几天偶然遇到一个二次封装的模块 snoop, 完美地解决了这个问题.
  2. 操作步骤 :
  • 1 . 在 eric6.pymain() 函数上加 snoop 装饰器;
    image.png
  • 2 . 用 vscode 打开 eric6start_.log 文件 (8 层深度 log 文件 34W 行,pycharm 对大文件支持很差);
    log文件

发现可以折叠 , 但是最大可折叠等级只到 5 级 , 而且无法对对应等级折叠 , 有点遗憾 。也许是.log 格式选得不太好, 不知道是否有更好的后缀格式。

  • 3 . vscode 配置 log 文件关键字高亮;
    安装高亮插件
    image.png
    配置高亮关键字
    image.png

callreturn 给加进去.

  • 4 . 增加阶段关键字;

eric6启动阶段

image.png

#000 是为了方便搜索 。
需要自己手动折叠 。
可以发现 每个 splash.showMessage() 都是一个阶段 , 展开折叠之后就是每个阶段具体执行细节 。


# ps: vscode 阅读 log 文件还是有一些不方便的地方,除了在 2. 中提到的,还有包括关闭文件再打开,折叠状态不会保留,有其他更好的方式 请留言告诉我,谢谢.