Object design rough talks 参加メモ

オブジェクト指向レッスン (t_hyssh)

  • Staticメソッドを使用しない(Factoryメソッド以外)
  • ファーストクラスコレクションを使用する
  • O/Rマッパーのクラスを変換して使用する
  • フィールドには全てのメソッドで使用するもののみを定義する
    • 単一責務の原則を満たしているか判断する基準の1つになる
  • プリミティブ型及び全ての標準APIをラップする
    • それが何の値でなぜそこで使うのかという情報をコンパイラプログラマに伝えることができる
    • このようなオブジェクトがなければ、これらに対する振る舞いはいろいろなクラスに散らばる可能性が高くなる
  • DDDにおけるServiceを使用しない


オブジェクトで会話できてる? (uzzu)

  • 会話によってオブジェクトを育てる
    • 同じ単語でもコンテキスト境界を超えると不適切になる事が多々
    • ユビキタス言語の方言
    • オブジェクトの概念的寿命(≠ライフサイクル)を意識する
  • 全力でドメインを守る
    • 解決すべきドメインのシナリオ以外の責務をドメインモデルに与えてはいけない
      • 解決すべきドメインのシナリオ以外とは:(ライフサイクル(DB, ○○キャッシュ, Application, Memory, DeviceStorage, ...)、コンテキスト境界外)
    • SRP違反。会話ができなくなる


Points of View (rosylilly)

1. Modeling

  • duck typing
  • Let's seek just the right border.

2. Viewpoint

  • Who are your users?
  • 技術的な知見とユーザーに近い目線を持つNewbieは貴重
  • ProTips: Marriage

3. Interaction

  • Classify and Devide

4. Context

  • Look the border of context

5. Mental model

  • 頭の中でどう分解するか

6. DCI

  • Data
  • Context
  • Interaction

7. in REAL WORLD

  • BluePrint