Skip to content

Instantly share code, notes, and snippets.

@j5ik2o
Last active September 20, 2019 05:15
Show Gist options
  • Save j5ik2o/4041a22c5396052ce2239ee3cae8e702 to your computer and use it in GitHub Desktop.
Save j5ik2o/4041a22c5396052ce2239ee3cae8e702 to your computer and use it in GitHub Desktop.
モデリングのお題

お題

勉強会に参加する方は、以下の映画料金表を参考して、映画料金を決定するドメインモデルを考えて実装してください(実装言語はScalaを想定しています。が、チームで相談して違う言語を選択してもよいです)

具体的には、入力として顧客や時間の条件を与えると何らかの計算を行い、出力として映画の価格を返してくれるクラスを実装するイメージです(ドメイン駆動設計の戦術的なプラクティスにこだわらなくてもOKです)。入力条件から複数の映画料金が求められる場合は安い価格を決定してくださいね…。クラスは何個作っても構いません。ただし永続化とかGUIのことは考えないでください。動作を確認できる、コンソールアプリケーションかユニットテストがあれば十分です。

https://cinemacity.co.jp/ticket/

以下の要件を満たすのは必須ではないですが、時間がある方は挑戦してみてください。思った以上に複雑な要件なので注意してください。 また、レディースディ(女性でかつ毎週水曜は安くなる)など新しいルールを作って実装してもOKです。

  • エムアイカード、駐車場パーク80割引
  • 同伴者
  • 3D作品は一律プラス400円。3Dメガネ(Real D)持参の場合は、100円引き。
  • 【極上爆音上映】はレイトショー割適用外です。

※余裕がある方は、PlantUMLなどでモデル図を描いたほうが説明しやすいかもです。

情報源は以下。見ないでやった方がいいかも。行き詰まって手が動かないなら見るぐらいで。

当日の進め方

  1. お題の説明
  2. モデリングワーク(0.5h) - 各チームごと
  3. 実装(1h) - 各チームごと
  4. コード例を以下の観点で説明(10分/チーム) - 各チームごと
    • 工夫したところ
    • 悩んだところ
    • こうすればもっとうまくいくところ
  5. 振り返り

※全体で2時間以内で収めたい…。頑張りましょう。実装までやる人は素振り必須。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment