ソースコードを読む手法「ひらメソッド」

同僚に「ひらメソッド」というのを教わったので、早速調べてみた。

2005_6_23カーネル座談会① – 読学のススメ

近年、多くのソフトウェアのソースコードが公開されていますが、そのほとんどは1万行を軽く超えているようなものばかりです。「読みたい→規模がでかい→ 自分では無理だ」このような状況が出来上がっているように感じます。しかし工夫次第で、天才でなくともこうしたソースコードを読めると私は確信しています。その私なりの工夫、つまりひらメソッドを紹介します。

ひらメソッドの肝は、ソースをトップダウンでなくボトムアップで読んでいくということ。つまりもう他の関数を呼んでいない、一番底辺の関数をまず見つけ、それらについて理解をしてから順に上の関数を理解していくようにする。そして重要なルールとして、「関数について理解するごとに、その理解をwikiにまとめておく」というのがある。そうすれば、その関数の働きについて覚えていなくてもよいので、記憶力が抜群に良い人間じゃなくてもソースを把握できますよ、というのが同メソッドの勘所だ。

なるほど、メソッドとしては面白そう。

メソッドとは直接関係ないのだが、リンクしたページに以下の様な記述があった。

2005_6_23カーネル座談会① – 読学のススメ

昔、どこかの雑誌の記事で”米国の平均的なプログラマーが把握できるソースコードの量は1万行だ”というのを読んだことがあります。どういう方法で出した値なのか不明ですが、ともかくプログラマーが把握できるソースコードの量は記憶力に強く依存するのではないか、っと思いました。つまり、あまり記憶力に依存しないような方法でソースコードを読めるなら、いくらでもソースコードは読めるのではないかと、そう考えたわけです。

1万行ですか。個人的にはもっといけるのではないかと思います。というか私が働いているところで作ってる製品の、例えば給与計算部分を担当しようと思ったら、把握しなければならないソース量はかるく数万行に及ぶ。まあそれがCOBOLだったりするので話が色々と違ってくるのだろうけど、ひとりの人間がソースをどこまで把握できるのかは調べてみると面白いかもしれない。