オブジェクト指向設計

実践で学ぶオブジェクト指向⑤ テスト実践編(Rspec)

前回学んだことを踏まえてRspecで各モデルのテストを書きました。 Gameモデルのspecを最後に書いたんですが、1つのメソッドで副作用がたくさん起こるのでテストが書きづらかった。 「テストを書くのに苦労するとき、アプリケーションの設計がマズい可能性が…

実践で学ぶオブジェクト指向④ 効果的なテストを行う

今回はテストについて考えたいと思います。 『オブジェクト指向設計 実践ガイド』の9章の部分です。 なぜテストを書くのか 変更可能なコードを書くための3つのスキル オブジェクト指向設計への理解 リファクタリングの能力 リファクタリングとは「ソフトウェ…

実践で学ぶオブジェクト指向③ メソッドの粒度

メソッドを小さく分ける 前回のコードには問題が残っています。Judgeが本来の責任に加え、処理分岐の知識を持ってしまっていることです。 これは良くないので、分岐に関する知識をGame_Masterに戻しましょう。以下のようになります。 def open(card_id) if c…

実践で学ぶオブジェクト指向② if分岐のネスト/デメテルの法則

繰り返されるif分岐 今回はまず、GameMasterクラスのopenメソッドについて考えてみようと思います。 このメソッドはアプリケーションの中で一番行数が多く、まず着手すべき部分であることは自分でもすぐに分かりました。 以下が現状のコードです。

実践で学ぶオブジェクト指向① 神経衰弱ゲームを設計する

「理解していない」という事実を分かってなかった…… 自分が今までオブジェクト指向設計を全く考慮せず、不安定なrubyの知識の上でMVCを理解しないままアプリケーションを積み上げていた、という衝撃の事実を先週知りました。 「コントローラーに処理を全部書…