大規模なソースや、複雑なソースを解析するときのこつを記述
- 秀丸やjvimなどのアウトライン機能、折りたたみ機能を使う
- viにはアウトライン機能はないらしい。
- findコマンドを使う
画面のキーワードや、任意のファイルをincludeしているファイルなどを検索するにはfindが有効
$ find . -type f -exec grep -l 'hoge' {} \;
漢字を検索するなら
$ vi hoge.dat
ほげ
$ find . -type f -exec grep -l `cat hoge.dat` {} \;
※ 正規表現でfindすると便利
- grepコマンドのnオプション
~$ cat hoge.dat aaa bbb ccc ddd eee fff ggg hhh iii ~$ grep -n ccc hoge.dat 3:ccc
※ マッチした行の行番号がわかる
- UMLを使う
プログラム解析を効率よく行うには、全体を把握することが重要。
そのためにUMLを利用することは有効。
シーケンス図、クラス図、コラボレーション図などが有効
UMLを勉強するなら以下のページがわかりやすい
- UML超入門
注意しないといけないのが、小規模なプログラムでUMLを利用しても逆に効率が悪いので、
ある程度の規模や複雑なプログラムを解析する場合のみUMLを利用したほうがよい。
- 画面遷移図
- まとめ資料を作成
キーポイントとなるような変数、関数、ロジックについての解説資料を作成。
又、疑問点や思いついたことをかきとめておくと、効率的にプログラム解析できる。
- ジグゾーパズルのような感覚で、わかるところから解析
前述したように、プログラムを解析する上で重要なのが全体を把握すること。
わからないところはほっといて、わかるところをどんどん解析していったほうが効率がよい。
- デバッグ文を利用。
- テーマを決めて読む
- いろんな人がいっていますが、プログラムを読むときに、ここの動きはどうやってるんだろうみたいな、テーマを決めてからよむといいらしいです。