んだ日記

ndaDayoの技術日記です

リファクタリング

開放/閉鎖原則(open/closed principle、OCP)について

んだです。メモです。 開放/閉鎖原則(open/closed principle、OCP) とは? 定義 「モジュールは拡張に対して開いて (Open) おり,修正に対して閉じて (Closed) いなければならない」 拡張に対して開いているって? (Open) 仕様変更があった場合に、新しい…

【メモ】インターフェース分離原則(ISP)

んだです。メモです。 今回は、インターフェース分離原則(ISP)について。 インターフェース分離原則(ISP)とは?? 「クライアントが使用しないメソッドに依存するよう強制されるべきではない」という原則。 ISP違反な実装 例えば、こんなインターフェイ…

【メモ】単一責任の原則

んだです。メモです。 SOLIDの原則を勉強してみたところ面白かったので、メモっていきます。 単一責任の原則って? 単一責任の原則=Single Responsibility Principle :SRP 「クラス・モジュールは、たった1つのアクターに対して責務を追うべき」という原則…

PHPで『Java言語で学ぶリファクタリング入門』を書いてみる(1) シンボリック定数によるマジックナンバーの置き換え

今回は、こちらの『Java言語で学ぶリファクタリング入門』をPHPで書いていきます。 Java言語で学ぶリファクタリング入門作者:結城 浩発売日: 2014/03/12メディア: Kindle版 第一回は 『シンボリック定数によるマジックナンバーの置き換え』 です。 マジック…

PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる (7) テストを追加

nda-desu.hatenablog.com 前回の記事 前回まででリファクタリングはおわりました。 テストも書いてみました。 github.com PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる シリーズはこれにて終わり。

PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる (6) メソッドの移動 

前回の記事 nda-desu.hatenablog.com 前回は、RentalクラスからMovieクラスにswitch文を移動させました。 getPriceCode()) { case Movi…

PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる (5) メソッドの移動

第二回の記事 nda-desu.hatenablog.com こちらの記事で、映画の分類のswitch文をRentalクラスに移動しました。 んが、 Rentalクラスへのswitch文のメソッドの移動は、良くない例でした。。 なぜなら、 他のオブジェクトの属性を調べるためswitchを書くことは…

PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる (4) メソッドの抽出と問い合わせによる一時変数の置き換え

前回の記事 nda-desu.hatenablog.com リファクタリング前のコード getName() . "\n"; foreach ($this->rentals as $rental) { $frequentRenterPoint++; if (($rental->getMov…

PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる (3) 一時変数を取り除く

nda-desu.hatenablog.com 一時変数を取り除く 今回は、一時変数をどうにかしていきます。 リファクタリング前のコード getName() . "\n"; foreach ($this->rental as $rental) { $thisAmount = $renta…

PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる (2) メソッドの分割

nda-desu.hatenablog.com メソッドの分割 statementメソッドを分割していきます。小さく分割していくことで管理が楽になるし、他のクラスへの移動も楽になる。 リファクタリング前のstatementメソッド getName() . "\n"; foreach ($th…

PHPで『リファクタリング―プログラムの体質改善テクニック』を実装してみる (1)

『リファクタリング―プログラムの体質改善テクニック』をphpで実装していきます。 リファクタリング―プログラムの体質改善テクニック (Object Technology Series)作者:マーチン ファウラーメディア: 単行本 リファクタリング 前のコード ディレクトリ構成 Ap…