天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

オブジェクト指向のこころを読む会 Vol.12

yr-camp.connpass.com

今週もこちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

最初にいつも通り読んできた章(12章)のあなたの意見に関してディスカッションをしたあと、今日はモデリングの品評会をしていきました。

会の様子

著者のアレグザンダーへの傾倒

この本の著者は銀の弾丸などないと言いながらも、「アレグザンダーを読んだ結果人生における物事の真価が分かった」「アレグザンダーの理論を適用した結果素晴らしい結果を得ることができる」と言った具合に激推ししているので、読んだときに動揺したという話からスタートしていきました。

あなたの意見2

音楽理論だと、理論通りに進行することが望ましいという話もありつつも、同じくらい意図的に外すというテクニック*1も受けているそうで、人によってこれが好き、これが嫌いみたいなものが分かれているという話がありました。(ただし、現代では外す流れの方が受けている傾向がある)

日本ではAメロ->Bメロ->サビメロみたいなパターンが王道ではありますが、海外ではあまり好かれないというのもあったりして、文化圏の違いも出ているのではないかという話も出ていました。

モデリング品評会

モデリングの品評会をしていきました。
以下、箇条書きかつ常体でそれぞれのモデルのポイントを記載していきます。

モデル1

  • 室外機とかの部分がうまく表現できていない
  • ControllerをかませてModeを操作するようにした
  • operation()を常に回すことで温度を監視&取得するイメージ
モデル2

  • Clientから直接Modeを操作させるのではなく、Controllerを一度かませるようにした
  • 冷房/暖房それぞれが室外機と室内機をいじれるようにしている
  • 具体的なメソッドとかまでは考えられていない

  • ドメイン知識を得て全体的にモデルに反映させた
  • 冷房/暖房それぞれが室外機と室内機をいじれるようにしている
  • 室内機の制御はinterfaceを経由してコントロールするようにしている

  • 空気を調整する際は、冷暖房の変化による調整と温度変更による調整と風量による調整それぞれで違うので、リモコンがModeを直接いじれないようにした
  • 空気の調整は室外機と室内機それぞれがあったり熱媒体の話があったりというのは分かったのだが、理論を理解しきれなかったのでモデリングに反映できていない

  • 浴室のエアコンに対しては適用できない
  • 一部屋に二つエアコンをつけることは想定していない
  • 意図的にエアコンより広いコンテキスト(部屋など)も含めている
  • Stateパターンを将来的に使用することを想定
  • マスタ側のエアコンと操作する側のエアコンを意図的に分けている(アナリシスパターンにあるようなテクニック)

会全体を通した感想

今日は新たにモデリング品評会をやってみて、多種多様なモデルが見れたのでよかったです。
ドメイン知識が足りていなかったり、練りきれていない部分が自分も含めた皆さんがあるということで、次回もやることになったので、今日聞いた話やオブジェクト指向のこころを参考にモデリングを洗練させていきたいと思います!

*1:厳密に言うと外し方にも癖が出ている