2006-06-01 Thu

他人の書いた大量のソースコードを一度に早急に理解するには

こつこつ自分で書いたソースコードや、
目的が明らかなオープンソースなモジュールなどではなく、
他人の書いた、役割も挙動も未知のソースコードを解読するとします。
そんなとき、初めはソースコードを一つ一つ見て、全体の流れをつかんで、
実際の挙動を確認する必要があります。

でも、コーディングした人の意図を理解するための
コストは、とてつもなく高いです。

私は理解する必要のあるファイルが20個くらいになると、
他人のソースコードを理解するためのコストを減らすために、
ファイルを紙に印刷してしまいます。

ソースコードを紙で印刷して、100円ショップで買った
40ポケットくらいのクリアファイルに、
ファイルごとに入れて、解読を始めます。

そして、分かったことや、挙動を4色ボールペンで書き込んでいきます。
その間に気がついたことは別の紙にまとめます。
最終的に自分の理解したことが全部クリアファイルに落ちます。
この頃にはソースコードは自分のものになっているので、
実はクリアファイルを携帯する必要がなくなってしまいます。

もちろんエディタがあれば十分な人もいるので、
上記の方法は、あくまで私が個人的に楽な手法です。
ただ、自分の知り合いでソースコードを理解しなきゃ!と言っている人が、
日々エディタと向かい合っていて、作業も進んでいないみたいだし、
大変そうだな、と思ったので記事にしました。

紙で印刷すると何が良いのかを考えると、あんまり思いつきませんが、
これくらい。

あんまり、良さそうなところは無いんですが、自分は印刷派です。
世の中の人は、効率の良いソースコードの理解のために、
何をやっているのでしょう。

みんな地味にコツコツやっているはずですが、スゴイ方法があったりして。

一応探してみると、目だっていたのは
青木峰郎さんの、ソースコードを読むための技術

以下は、青木さんのページを読んだときの自分メモ。

たしかに、検索は重要です。
私は紙を眺めつつ、grepを使っていますね。
今のところgrepくらいで十分だったりします。
自分はあんまりデバッガを使ってこなかったので、
今後使おうと決めました。

とりあえずCode Readingを読め、という声もありますね。

地味ですが着実なコードの読解を今後もやろうと思います。
来年には、今よりも早くコードを読めるようになっているでしょう。

Code Reading—オープンソースから学ぶソフトウェア開発技法
powered by amagami on 2006.6.2
トップスタジオ, まつもと ゆきひろ, 平林 俊一, 鵜飼 文敏
毎日コミュニケーションズ(2004/06/01)
売り上げランキング: 30,286
おすすめ度: 4-0
4-0ホップ・ステップ・ジャンプ
4-0例題がわかりにくい
4-0サブタイトルの方が適切?

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

Podcast jkondoの日記 村上龍さんはてな来訪 のメモ

jkondoの日記 村上龍さんはてな来訪を帰宅中に聞いたのでメモ。

こういうメモがないと、Podcastって消せないことに気がついたので、
溜まっているものを今後もメモしていきます。

しばらくはjkondoさんのポッドキャストばっかりになる予感:-)

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

blogWatcher 3.0b リリース

本日、東京工業大学精密工学研究所奥村研究室は、blogWatcher 3.0b を
リリースいたしました。

blogWatcher 3.0bのブログ検索結果

blogWatcher 3.0b

検索画面は、こんな感じです。

blogWatcher 3.0bのブログ検索結果blogWatcher 3.0bのブログ検索結果
blogWatcher 3.0bのブログ検索結果blogWatcher 3.0bのブログ検索結果
blogWatcher 3.0bのブログ検索結果

見所がいろいろありますので、是非ご利用ください。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |