- 作者: 青木峰郎,まつもとゆきひろ
- 出版社/メーカー: インプレス
- 発売日: 2002/12
- メディア: 単行本
- 購入: 1人 クリック: 332回
- この商品を含むブログ (59件) を見る
元ネタ
- Rubyソースコード完全解説 序章 導入
- 「ソースコードを読む技術」を探してね
導入の章にソースコードの読み方についていいことかいてあったのでメモ。
Rubyの本だけど、どんな言語にだって対応できます。
原則
- 目的の決定
- 「ソースコードを読むための極意」は『目的をもって読む』こと
- なんとなく全部理解しようとしても絶対に失敗する
- ここのバグをなんとか直したい、などの目的が必要
- 「ソースコードを読むための極意」は『目的をもって読む』こと
- 目的を具体化する
- 1.そのプログラムを書いた人間になったつもりで考えてみること
- たしかに。コードには書いた人の意思や哲学などがちりばめられている。
- それが理解できれば読むスピードも格段に上がるし、拡張するときの心理プレッシャーがすごく少なくなります。
- 2.解析の手法を意識すること
- 以下の通り
- 1.そのプログラムを書いた人間になったつもりで考えてみること
解析の手法
- プログラムを調査するときはまず「動的な解析」から始めたほうがよい。
- 普通に動かす
- デバッガ動かしながら確認していく
- トレーサとよばれるツールを使う
- printf()しまくる
- 書き換えて動かす
- 静的な解析(ソースを読む、ということ)
- まずは名前の調査。ファイル名・関数名・変数名・型名・メンバ名など。コーディングルールも。
- 名前、重要。名前の付け方が下手なコードは本当に追いにくい。
- ドキュメントを読む
- ディレクトリ構造を読む
- ファイル構成を読む
- 略語の調査
- データ構造を知る
- 関数同士の呼び出し関係を把握する
- 関数を読む
- 好みに書き換えてみる
- 括弧の位置とか、些細なコーディングスタイルを自分好みに書き換えながら読んでいくとかなり理解が進むよね
- 歴史を読む
- これかなり大事だと思う
- どういった背景で開発されてきたか
- どんな人がどんな形で関わったかなど、
- コードの「意思」を読み解くには歴史が必要だと思う
- お好みの静的解析用ツールを使う
- これはおまけ程度に考えたほうがいいかな
- ツールに頼る前にやることはいっぱいあるよ
- まずは名前の調査。ファイル名・関数名・変数名・型名・メンバ名など。コーディングルールも。
各項目の詳細は元ネタ参照のこと