• ベストアンサー

ソースコードを効率よく読むには

私はソースコードを読む際、とりあえずmain関数の先頭から読んでいき、知らない関数に出会った時はその都度調べて、、、というスタンダードというか単純なやり方でコードを読んでおりますがもっと効率よくソースコードを理解する方法はないかと思っております。 皆さんにお聞きしたいのですが、ソースコードを読む際の工夫していることや、便利なツールなどがあれば教えていただきたいです。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

まず、仕様書がを読み、機能と対応すると思われるソースコードを読みます。 よくできたシステム(のソース)ならば大体対応が取れるので、これで大雑把にわかります。ここで重要なのは、このソースコードはどういう機能を実現しているかをざっくり理解することです。 仕様書がなければ、人に聞くか、取説でもいいからドキュメントを探します。もちろん仕様書がアップデートされていないことは良くあるから、あまり悩むのは無駄です。 次に、データ構造を捉えます。 C言語の場合ですが、データ構造を構成するメンバ変数を元に検索すれば、ソースコード間の因果関係が明らかになります。 ポイントはどのメンバ変数は、いつどこでどう書かれるのか、読まれるのかを明らかにすることです。 ここまでできれば、読みやすそうなソースコードを手始めに解析を始めます。 読みやすいとは、ソースコードのステップ数が少なく、他のソースコードと依存がなく、機能がはっきりわかるものを選びます。 解析のポイントは、ソースコードを書き換えて見ることです。自分の読みやすい形に書き換えて、メモを入れてみたりすればよいです。リファクタリングかな? 以上いかがでしょうか?

その他の回答 (3)

  • rot-N
  • ベストアンサー率27% (118/432)
回答No.3

私は、上下から読んでいきます。 mainからも読みますが、関数が何をやっているのかを読んでおきます。 で、関数名を参照しながら、「ここは....をして、その次の関数で...をして」と、全体を見ながらのボトムアップ的な読み方をしています。 完全に下から読むのではなく、上から一度読んだだけで理解しようともせず、下から読んだ知識を元に上から読んでいくというイメージでしょうか。 関数呼び出しのTree構造を調べるツールは必須です。

回答No.2

ソースコードをhtml化するツールがあります。 ディスクスペースがかなり必要となりますが、知らない関数に出会ったときにすぐに辿れるのでとても便利です。

参考URL:
http://uguisu.skr.jp/Windows/gtags.html
回答No.1

まず関数レベルでツリー構造を確認すれば簡単ではないでしょうか。 例えばこんなツールです。 http://www.vector.co.jp/soft/dos/prog/se174432.html?y

参考URL:
http://www.vector.co.jp/soft/dos/prog/se174432.html?y

関連するQ&A