第16章 変更できるほど十分に私はコードを理解できていません
レガシーコードの理解のしかた
- メモを取る・スケッチを描く
- コードを読むだけでは混乱する場合に行う
- 重要な事柄の名前を書き留めて、その次に重要な事柄を書く
- それらの間に関係性を見つけたら線を引く
- 別にUMLでなくても良い
- 印をつける
- 長いメソッドに対して特に役立つ
- 何を理解したいかによって、印を付ける方法を変える
- 責務の分解
- 対象をグループ化するために印を使う
- 識別できるように特別な印を付けるか色分けする
- 対象をグループ化するために印を使う
- メソッドの構造の理解
- コードブロックに線を引く
- メソッドの抽出
- 抽出したいコードをまるで囲む
- そこに結合カウントを注釈としてつける
- 変更の影響の理解
- 変更しようとするコードに印をつける
- その変更によって変わる可能性のある、変数とメソッド呼び出しに印をつける
- その印をつけた箇所によって更に影響を受ける箇所に印をつける
- 責務の分解
- 試行リファクタリング
- テストのことは忘れて、あらゆる方法を使ってリファクタリングする
- その後、その変更を破棄する
- 使用していないコードを削除する
- コードがわかりづらく、その一部が使われていないと断言できるなら削除する
感想
UMLでなくても良いが、スケッチのをPC上で書くならUMLを使って書いたほうが楽(形式に従うかは別)
コードブロックに線を引くのは、別にエディタの機能でいいかな