像读文章一样读源码

使用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.中提到的, 还有包括关闭文件再打开, 折叠状态不会保留 , 有其他更好的方式 请留言告诉我 , 谢谢.


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