今天突然想看看nginx的源码,于是随手下了一份,发现写的挺清楚的。不过看的时候还是有不少麻烦事,比如看着看着就记不得之前看到哪了。之前看robocup2d的代码也是这个问题,这里记录了一下这几天为了看源码找的工具。

Source Insight

这个说是老牌IDE了,据说有很多好的功能,但是因为

  • 要钱
  • 古老的UI
  • 看起来很复杂

所以就没用它了

Source trail

就是因为它我才知道原来有专门看源码用的软件

这个软件提供了

  • 对于各种结构(文件,类)的图形化展示
  • 对于各种component间相互作用的展示
  • 支持图形化和源码相互对照的功能

但是也有这些缺点

  • 程序流程不够清晰(可能这点本来就是给人看的)
  • 对于宏的处理不够好,不能做到“把宏当变量”(也可能是我不会?)
  • 程序必须要能完全编译才能生成图形展示。

上面这些都是看robocup的代码时候的感想,这个工程直接使用了makefile。而软件可能对cmake、vs、qt的工程更友好一些。

VScode

最后还是拿vscode看了起来,goto来goto去还是很爽的。不过为了能更爽的看代码,搜了下插件

insight

一个快捷搜索用的小插件,可以在左侧快速搜索勾选的word,但是只支持诸如google、stack overflow此类的网站(其实挺好的,但是我不是很方便。。。)

我考虑考虑学学typescript帮忙更新下这个插件哈。感觉不难(

codetour

好东西了属于是。可以按顺序记录每次看的内容并生成一个.tour文件(本质上是json),这玩意可以很轻松的记录我看某个东西的流程,并且支持修改我看的内容。比如我看的时候走错了地方,我还能倒回去)。更进一步,这个工具可以用来记录决策树。

比起工具,还是更加注重代码本身吧,毕竟目的是“学习源码的精髓”而不是“学几个工具”。