Please enable JavaScript.
Coggle requires JavaScript to display documents.
リファクタリング/マーチンファウラー (コードの不吉な臭い (重複したコード, 長すぎるメソッド, 巨大なクラス, 長すぎるパラメータリスト,…
リファクタリング/マーチンファウラー
コードの不吉な臭い
重複したコード
長すぎるメソッド
巨大なクラス
長すぎるパラメータリスト
変更の偏り(別々の理由で何度も変更される)
変更の分散(同じ理由であちこちの変更)
自分よりも他のクラスに興味を持つ(横恋慕)
データの群れ(同じようなデータがあちこちに)
基本データ型への執着
スイッチ文
パラレル継承(継承が他のクラスの継承を招く)
怠け者クラス
疑わしき一般化(YAGNI)
一時的属性(特定の状況でしか設定されないプロパティ)
メッセージの連鎖
仲介人
不適切な関係(依存関係の強すぎるクラス)
クラスのインターフェース不一致
未熟なクラスライブラリ
データクラス
相続拒否(サブクラスが親の属性・操作の継承を拒否)
コメント(コメントがないとわからない)
リファクタリングの原則
定義
外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変化させること。
理由
ソフトウェア設計を改善する
ソフトウェアを理解しやすくする
バグを見つけ出す
より早くプログラミングできる
いつするべきか
3度目の法則
機能追加時
バグフィックス時
コードレビュー時
問題点
データベース(データ移行)
インターフェースの変更(公布済みインターフェース)
避けるべきとき
変更するよりも書き直した方が早いとき
期限が迫っているとき