Created
April 12, 2016 15:28
-
-
Save mdk-aza/45386816a42e8f4bc33334d3ebbbb08d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
メソッドの抽出 | |
ひとまとめにできるコードの断片がある。 | |
コードの断片をメソッドにして、それに目的を表すような名前をつける。 | |
メソッドのインライン化 | |
メソットの本体が名前をつけて呼ぶまでもなく明らかである。 | |
メソッド本体を呼び出し元にインライン化して、メソッドを除去する。 | |
一時変数のインライン化 | |
簡単な式によって一度だけ代入される一時変数があり、それが他の | |
リファクタリングの障害となっている。 | |
その一時変数への参照をすべて式で置き換える。 | |
問い合せによる一時変数の置き換え | |
式の結果を保持するために一時変数を使っている。 | |
式をメソッドに抽出する。一時変数へのすべての参照を新たなメソッドに置 き換える。これにより新たなメソッドが他のメソッドでも使えるようになる。 | |
説明用変数の導入 | |
複雑な式がある。 | |
その式の結果または部分的な結果を、その目的を説明する名前をつけた一 | |
時変数に代入する。 | |
一時変数の分離 | |
何回も代入される一時変数があるが、それは、ループ変数でも一時変数を | |
集める変数でもない。 | |
代入ごとに別の一時変数に分ける。 | |
パラメータへの代入の除去 | |
パラメータへの代入が行われている。 | |
一時変数を使う。 | |
メソッドオブジェクトによるメソッドの置き換え | |
メソッド自身をオブジェクトとし、すべてのローカル変数をそのオブジェ | |
クトのフィールドとする。そうすれば、そのメソッドを同じオブジェクト | |
中のメソッド群に分解できる | |
アルゴリズムの取り替え | |
アルゴリズムをよりわかりやすいものに置き換えたい。 | |
メソッドの本体を新たなアルゴリズムで置き換える。 | |
トピック | |
名前大事だよー | |
値渡しと参照渡し | |
コマンドクエリ分離原則(CQS)は副作用を抑える | |
CQS: 「あらゆるメソッドは、アクションを実行するコマンドか、呼び出し元にデータを返すクエリかのいずれかであって、両方を行ってはならない。これは、質問をすることで回答を変化させてはならないということだ。」 | |
http://d.hatena.ne.jp/asakichy/20090506/1241565433 | |
http://kokudori.hatenablog.com/entry/20130206/1360170983 | |
http://d.hatena.ne.jp/m-hiyama/20101216/1292469108 | |
https://gist.github.com/yoppi/e859a7a5f4d317223901 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment