zuknow learn together

新しい教材を作成

オブジェクト指向エクササイズのすすめ

カード 9枚 作成者: hajimeni (作成日: 2014/02/28)

  • インデント1段階
    (難易度:☆)

解説面  クリックしてカードを裏返す

アプリをダウンロードして、このコンテンツを学習しよう! AppStore / Google Play

教材の説明:

オブジェクト指向プログラミングできていますか?
あなたの書いたコードは本当にオブジェクト指向ですか?
トランザクションスクリプトになっていませんか?
カプセル化を勘違いしていませんか?

そんなあなたに強制的にオブジェクト指向プログラミングを身につけさせる9つのルール。わからない単語はググる。

参考サイト:http://d.hatena.ne.jp/asakichy/20090612/1244769857

公開範囲:

公開

カテゴリ:

  • このエントリーをはてなブックマークに追加
  • 1

    インデント1段階 (難易度:☆)

    補足(例文と訳など)

    答え

    • 1メソッド中にインデントが1段階になるようにリファクタリング「Extract Method」を適用。ifだけ、とかforだけ、とかにする。 ネストしていいことは大体無い。

    解説

  • 2

    else句禁止 (難易度:☆☆)

    補足(例文と訳など)

    答え

    • 早期リターン、ガード節、Strategy/Stateパターン、NullObjectパターンでなくすことが出来る。elseが出る場合は2種類のことを1メソッドでやろうとしていることが多い。

    解説

  • 3

    プリミティブ、String、スカラ値禁止 (難易度:☆☆☆)

    補足(例文と訳など)

    答え

    • プリミティブやInteger、Long、Date、Stringをラップしたファーストクラスオブジェクトを作成する。String firstName;ではなく、Name name;。

    解説

  • 4

    ドット1つ (難易度:☆☆☆)

    補足(例文と訳など)

    答え

    • デメテルの法則(知らない奴には話しかけない)に従う。DBFluteやFactory、Builderは除いたほうがいいかも。ただ分割するのではなく、奥深いネストのクラスを理解する必要がほんとうにあるか?を考える切っ掛けにする。

    解説

  • 5

    名前省略禁止 (難易度:☆)

    補足(例文と訳など)

    答え

    • 省略はしないけど長すぎるのもダメ。名前は1つか2つの単語だけ使うようにする。文脈が重複する名前は避ける。責任を少なくすれば自然と短くわかりやすくなる。

    解説

  • 6

    小エンティティ (難易度:☆☆☆)

    補足(例文と訳など)

    答え

    • 1クラス50行、1パッケージ10ファイルを超えない。インポート、空白行も含む。とはいえ文法やフォーマッター上妥協せざるを得ない場合のほうが多い。

    解説

  • 7

    インスタンス変数2つ (難易度:☆☆☆☆)

    補足(例文と訳など)

    答え

    • 1クラスの責務を減らしていくことで、インスタンス変数を減らす。ValueObjectを作っていったり、ステータスや種別などを細かく分けていく。これが出来るようになったら多分卒業。

    解説

  • 8

    ファーストクラスコレクション (難易度:☆☆)

    補足(例文と訳など)

    答え

    • Collection系クラスをラップしたファーストクラスコレクションを使う。List<String>→NameList。add(object)ではなく、addName(name)。

    解説

  • 9

    Getter/Setter/プロパティ使用禁止 (難易度:☆☆☆☆☆)

    補足(例文と訳など)

    答え

    • 「求めるな、命じよ」の原則を適用する。 get〜は、呼び出し側が使用クラスの内部実装を取り出している。set〜は内部実装を書き換えている。get〜はクラスの責務を考えれば回避できる(はず)。set〜はImmutableなクラスを利用すればできなくなる(はず)。(とはいえ名前に困って使わざるを得ない場合もある)

    解説

56679

セットの学習コンテンツ

公開初月で
60,000
ダウン
ロード!

無料アプリはこちら!

英単語をウェブサイト
からzuknowに簡単登録

覚えたい単語を選択するだけ!
簡単にzuknowに登録することが
できます

Get the free Chrome Extension

トップ