Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

リファクタリングの可能性を示唆する不吉な匂い一覧

一覧

  • 重複したコード
    • コードがあちこちでダブっている
  • 長すぎるメソッド
    • メソッドが長すぎる
  • 巨大なクラス
    • クラスが持っているフィールドやメソッドが多すぎる
  • 多すぎる引数
    • メソッドへ渡す引数が多すぎる
  • 変更の発散
    • 仕様変更が起きた時の修正箇所があちこちに散らばっている
  • 変更の分散
    • あるクラスを修正すると、他のクラスもあわせて修正しなければならない
  • 属性、操作の横恋慕
    • いつも他のクラスの中身をいじってるクラスがある
  • データの群れ
    • まとめて扱うべき複数のデータが、1つのクラスにまとまっていない
  • 基本データ型への執着
    • クラスを作らず、intのような基本データ型ばかり使っている
  • スイッチ文
    • switch文やif文を使って振る舞いを分けている
  • パラレル継承
    • サブクラスを作るとクラス階層の別のところにもサブクラスを作らなければならない
  • 怠け者クラス
    • クラスが大した仕事をしていない
  • 疑わしき一般化
    • いつかこういう拡張もするだろうと期待して、一般化しすぎる
  • 一時的属性
    • 一時的にしか使わないフィールドがある
  • メッセージの連鎖
    • メソッドの呼び出しの連鎖がある
  • 仲介人
    • 移譲ばかりしていて、自分では仕事をしていないクラスがある
  • 不適切な関係
    • その必要がないのに双方向リンクを張っていたり、IS-A関係がないのに継承を使っていたりする
  • クラスのインタフェース不一致
    • クラスのインタフェース(API)が不適切である
  • 未熟なクラスライブラリ
    • 既存のクラスライブラリが使いにくい
  • データクラス
    • フィールドとgetterメソッドとsetterメソッドしか持っていないクラスがある
  • 相続拒否
    • 継承しているメソッドなのに、それを呼ぶと問題が起きる
  • コメント
    • コードの不備を補なうために、詳しいコメントがある
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away