code-reading:可読性
from コードリーディング
読んで理解できるコードなら、機能を改善できる
読んで理解できるコードなら、バグも直せる
読んで理解できるコードなら、動作も速くできる
プログラミング言語依存?
動的解析と静的解析の基本手法は共通
手続き型言語(オブジェクト指向言語を含む)であれば変わらない
言語や開発環境の進化とともにメタ知識が増える傾向(後述)
メタ知識
コード以外から読み取るべき知識
手続き型って古い?
拡張性に乏しいコードになる傾向がある
しかし、古いと切り捨てるのが能ではない
手続き型コードの利点
普通の人には読んで理解しやすい
コードのすべてに拡張性や変更容易性が求められるわけではない
上位に手続き型層を「意識的に」作るアーキテクチャ
対象とするコード規模
中密度で大規模なコード
高密度(難しいアルゴリズムなど)の読み方は別スキル
コードのスケール感
行数のオーダー
1000行 やる気があれば全部頭に入る
1万行 気合が必要だがほぼ頭に入る
10万行 普通の人が根性で読める限界
100万行 読み方のコツが必要。全部は頭に入らない
1000万行 ひとりの人間に把握は無理
可読性()