不吉な匂い

マーチン ファウラー(著)リファクタリングでは、リファクタリングが必要な個所を「不吉な匂い」と表現しています。
 
これは感覚的でよい表現だと思います。たとえばソースを解析していて「よくわからない」、「直しづらい」と感じる個所は「不吉な匂い」の可能性が高く、リファクタリングの候補と言えるでしょう。
 
以下に書籍「リファクタリング」に記載されている22個の「不吉な匂い」を紹介します。
 
重複したコード
 
コードがあちこちでダブっている。
 
長すぎるメソッド
 
メソッドが長すぎる。
 
巨大なクラス
 
クラスが持っているフィールドやメソッドが多すぎる。
 
多すぎる引数
 
メソッドへ渡す引数が多すぎる。
 
変更の発散
 
仕様変更がおきたときの修正箇所があちこちにちらばっている。
 
変更の分散
 
あるクラスを修正すると、他のクラスもあわせて修正しなければならない。
 
属性、操作の横恋慕
 
いつも他のクラスの中身をいじっているクラスがある。
 
データの群れ
 
まとめて扱うべき複数のデータが、1つのクラスにまとまっていない。
 
基本データ型への執着
 
クラスを作らず、intのような基本データ型ばかり使っている。
 
スイッチ文
 
switch文やif文を使って振る舞いを分けている。
 
パラレル継承
 
サブクラスを作ると、クラス階層の別のところにもサブクラスを作らなければならない。
 
怠け者クラス
 
クラスが大した仕事をしていない。
 
疑わしき一般化
 
いつかこういう拡張もするだろうと期待して、一般化しすぎる。
 
一時的属性
 
一時的にしか使わないフィールドがある。
 
メッセージの連鎖
 
メソッド呼び出しの連鎖が多すぎる。
 
仲介人
 
委譲ばかりしていて、自分では仕事をしていないクラスがある。
 
不適切な関係
 
その必要がないのに双方向リンクを張っていたり、IS-A関係がないのに継承を使っていたりする。
 
クラスのインタフェース不一致
 
クラスのインターフェース(API)が不適切である。
 
未熟なクラスライブラリ
 
既存のクラスライブラリが使いにくい。
 
データクラス
 
フィールドとプロパティ(getterメソッドとsetterメソッド)しか持っていないクラスがある。
 
相続拒否
 
継承しているメソッドなのに、それを呼ぶと問題がおきる。
 
コメント
 
コードの不備を補うために、詳しいコメントがある。

g h T
 3,038 Total Views

ADVERTISING

駅チカ!ホテル検索
全国の駅や目的地近くの宿泊施設を検索し予約することができます。最寄駅沿線からもホテルを検索できるので、アクセスのよいホテルを予約することが可能です。
  1. コメントはまだありません。

  1. トラックバックはまだありません。