前提
以下の本を読んで読む力を付ける手法に焦点を当て、学んだ内容に絞ってメモをする
Amazon.co.jp: 書くスキルも設計スキルも飛躍的に上がる! プログラムを読む技術 : 岩松 洋: Japanese Books
備忘メモ
最近の流儀は関数の使いまわしとライブラリの使用によって人力でコードする余地を減らす
関数を作成する基準はまちまちだが50行を超える際に作成する基準もある
関数名・変数名の命名はPythonならPEP8に準ずる
プログラムの構造は入力→処理→出力で入力・出力を探すのが理解の近道
プログラムを読む前に実行しておきたいこと
- ドキュメントを探す(外部仕様書と詳細設計書が特に大事)
- プログラムを書いた人に聞く
- コードを実行してみる
- プログラムの目的に合わせて入出力・処理を想像する
外部仕様書で特に大事なのが機能要件とインターフェース要件、システムの目的
プログラムの読む順番はメイン部分(一番大きな処理)を読む→データ構造を読む→部分部分を読んでいく
メイン部分はCのmain関数のようなものでPythonならインデントされていないimportやdef以外で始まる部分
制御文は入出力の関係する情報はないがその後に表示されるので要チェック→Pythonでいえば:でとじるif文などが制御文→入出力と処理はその後の実行文内に存在
変数を読み解くときに気を付けるべきこと
- 変数名から変数の目的を推測
- 変数のスコープ(有効範囲)を把握→グローバル変数とローカル変数の混同など
- 代入されている場所と参照されている場所を把握
入出力・処理を読み解く必要があることは学んだがこの内の処理の部分を深堀すると関数を読み解く必要が出てくる
→関数の入力は引数・出力は戻り値であることが多いが他にも標準入出力やファイルやDBもあるので注意
関数の他にクラスを読む必要があり、関数が処理の単位ならクラスは役割の単位
クラスのメリットは関連するデータと処理がクラス内で完結しており読んで把握することが容易→クラスを書く時の手間は増えるが…
クラスの読み方は必要なデータと処理が何かを気にしながら読む
データ構造を読む=グローバル変数を追う
その他にもモジュールを読む(.getsourceからソースを表示して分からないところは公式ドキュメント)
残りは実践編で上記原則を確かめる内容なので割愛