巨大関数を理解するには
とりあえず、延々と長い関数は、内部の処理を大づかみに分割することが必要だろう。
「Code Reading: The Open Source Perspective (Effective Software Development)*1」で紹介されていた、Microsoft Wordで読み込んで、印刷イメージの縮小表示で全体の概観を眺める、という方法はやってみた。なんとなくこのあたりは雰囲気が違うなというのは見て取れる。
NSチャートを自動的に生成してくれるツールも有効かもしれない。たしかどこかでダウンロードできたはず。
プログラムスライスを生成してくれるツールも助けになるかも。対象とする関数は、引数なし。内部の処理では関数外の変数をいくつも使っている。どんな変数をいくつ、どのように使っているのかがはっきりすれば、関数の処理内容の理解につながるだろう。
*1: Code Reading: The Open Source Perspective (Effective Software Development)