パンくず
リファクタリング-プログラマーの体質改善テクニック
コードの不吉な臭い
内容
リファクタリングが必要となるコードの不吉な臭いには以下のものがある。
※詳細は個別のリンク先に記載
臭いの名称 | 臭いの詳細 |
---|---|
重複したメソッド | 内容が重複したメソッドが複数の箇所に存在すること |
長すぎるメソッド | メソッドが長すぎること |
巨大なクラス | クラスが巨大すぎること |
多すぎる引数 | 引数が多すぎること |
変更の発散 | 一つのクラスの変更が異なる理由で発生すること |
変更の分散 | 一つの変更が複数のクラスに分かれていること |
属性操作の横恋慕 Feature Envy | 他クラスのメソッドばかりを利用しているクラス |
データの群れ | 複数のデータが複数の箇所に現れること |
基本データの執着 | 基本データ型に固執している箇所があること |
スイッチ文 | スイッチ文があること |
パラレル縦断 | あるサブクラスを作ると別のサブクラスも作る必要があること |
怠け者クラス | 実は使われていないクラスや、改修により使われなくなったクラス |
疑わしき一般化 | 予想で実装された付加的機能。YAGNIに反すること |
一時的属性 | 変数の値が特定の状況でしか設定されないこと |
メッセージの連鎖 | メッセージの過剰な連鎖があること |
仲介人 | メソッドの大半が別のオブジェクトの委譲である場合など |
不適切な関係 | 密接すぎるクラス |
インターフェースの不一致 | 同じ処理をしているがシグネチャがことなる |
未熟なクラスライブラリ | ライブラリに不備があること |
データクラス | getter、setterのみを持つようなクラス |
相続拒否 | 継承で利用している属性・操作が一部だけの場合 |
コメント | コメントが多すぎる状態 |