如何阅读屎山代码

153 阅读1分钟

【复盘迭代】我今天尝试了一种新代码阅读手段

  • 具体操作:
    • STEP1: 看懂一行,就给一行写注释。
    • STEP2: 读懂的代码立刻输出到注释中,而不是一直记在脑子里无谓的占用思维容量
    • STEP3: 当你通读全部代码,进行完一整轮 “代码意图翻译” 之后,再次通篇阅读一次。
      • 这次阅读不是读代码,而是只读你刚刚写的注释。将每一行的意图串联起来,组织成整篇代码的全貌。
      • 换句话说,此时可以开始进行 “逆向” 领域建模了。可以基于每一句的意图,提炼出代码领域模型。

原则:

  • 此代码阅读法,符合 “直观降难” 原则。

复盘:

  • 我发现任何一行代码都可以分为 “意图” 和 “实现手段” 两个部分。
  • “实现手段” 往往比较复杂。而 “意图” 往往非常简单。
  • 我要提取出每段代码的 “意图”,将简单的线索串联在一起,才能理解复杂庞大的代码。

效果:

  • 那种100多行,极长的代码通过这种阅读方法,可以说是迎刃而解。
  • 针对屎山代码特别有效。
  • 因为【屎山】往往是核心思想简单,但是实现手段极为复杂的代码。
  • 屎山包含大量无用判断条件,没有整理过的深层if循环,无意义的取值设值造成的复杂数据流,极其深层的复杂取值,毫无类型推断的函数调用等等。
  • 通过上述手段,把每一行代码的 “意图” 提取出来,其实屎山是很好读的。