BETA

ドメイン駆動設計にチャレンジ(知識のかみ砕き-その2)

投稿日:2019-08-18
最終更新:2019-08-21

情報処理技術者試験(DB)の2019年4月の問1をお題としたドメイン駆動設計チャレンジです。

前回の続きからです。前回は、大きな登場人物は出てきました。どうも、エントリ枠が中心となりそうですので、エントリ枠を中心にみていくことにしましょう。

もう少し細かくかみ砕いてみよう!

開発者:大きなところで行くと、こんな感じでしたが、たぶんポイントとしては、エントリ枠をどうするか?になってきそうですね。

専門家:そうですね、大会に参加するには、エントリ枠に登録、参加申し込みをしてもらうことになりますし。

開発者:ところで、大会に参加申し込みするには、やっぱり募集期間みたいなのありますよね、今回はエントリ枠はどんなモノコトがあるかっていうのを考えてみましょうか。

専門家:そうですね、大会に参加するには、参加申し込みをしてもらいますが、募集期間もそうですけど、定員はもちろんあります。あと、無料で参加できることもありますが、参加費用は払ってもらいます。

開発者:どんなエントリ枠かっていう説明もあったりしますか?

専門家:はい、あと名前もありますね。エントリ枠名エントリ枠説明って言ってます。

開発者:わかりました。さすがに名前がないと、どのエントリ枠に参加申し込みすればよいかわかりませんからね。定員なんですけど、先着で、募集期間が終わったら先着順で参加者が確定、ってところでしょうか?

専門家:おおっと、抽選もあります。参加者を決めるには、先着順抽選という先着順抽選区分があって、抽選の場合は抽選年月日に抽選を行います。先着順はそのまま募集期間終了したら参加者確定ですね。

開発者:なるほどー、先着順抽選区分で、抽選では募集期間を過ぎたら抽選年月日に抽選することになるんですね。ここまでのエントリ枠を確認すると、こんな感じですか?

専門家:あー実は、参加希望者って、実はどの会員がいつ参加申し込みをしたか知りたいとかあります・・・

開発者:なんと!

専門家:あとは・・・募集期間は募集開始年月日とか、、、なんというか今までのやり方だとこうなりますね!

開発者:そうですね・・・型や値をもっと意識することにしてみましょう!参加費用2^32円とか(大体2G万円とか)ありえないですし!

専門家:エントリ枠名とかエントリ枠説明はStringでもいいと思いますけど定員数とかも定員なんかいけそうですね。

・・・なんだか専門家の方は専門家らしくないというか、なってしまいましたが、気にせずに行きましょう・・・

開発者:そうですね、募集期間もいきなり募集開始年月日、募集終了年月日とかになってしまいましたけど、募集期間で表せますね

専門家:あー先着順参加者確定のメソッドは、悩ましいですね。抽選のメソッドで抽選の時の参加者を確定するのですが、そこで先着順の参加者の確定を行うわけにはいかないですしね。参加者の確定を行うのは確かなのですが、参加者確定、とすると、抽選をするという知識が失われてしまいますしね。

開発者:エントリ枠を継承して、先着順と抽選のエントリを分けるのもありかなーと思いますよ。

専門家:いえ、とりあえずはこれで行きましょうか。先着順抽選区分で参加者確定のメソッドあるんですね。

開発者:はい、先着順、抽選の区分でなんか参加者の決め方のルールがあるので、先着だったときのルールと、抽選の時のルールを先着順抽選区分に持たせてみました。

専門家:なるほどー!区分ごとのロジックを先着順抽選区分で整理するのですね!

開発者:抽選年月日と参加希望者のリストはあえて独立させる必要はないかと思いましたが・・・

専門家:いえ、こういうモノがあるのだな、というのが分かるので、良いと思いますよ!

・・・続きます・・・

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

yodai_u_uの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!