tonkat-prtq / java-bingo-app

0 stars 0 forks source link

要件定義と必要そうなクラスについて追記 #1

Open tonkat-prtq opened 2 years ago

tonkat-prtq commented 2 years ago

やったこと

要件定義

クラス定義

実装

tonkat-prtq commented 2 years ago

README.mdの要件定義とクラスについてのレビュー、アドバイスいただきたいです! https://github.com/tonkat-prtq/java-bingo-app/blob/0608_add_rd_and_class_to_readme/README.md

乱数生成部分はもう少し自分で試してみようと思います。

k-sawahata commented 2 years ago

順位を作るようですが、順位は誰がどう操作するんですかね?

カードの数字は値オブジェクト(数字クラス)として定義するのも一つの手ですね。 列によって数字の制限がありますし、booleanで既に当たりかどうかを一つ一つの数字に持たせるのもありなので。

神様に関しては、DDDの言葉でサービス層という言葉があります。 関連資料載せておきますね。

DDD(ドメイン駆動設計) ValueObject(値オブジェクト)

ValueObject(下記のサイトとかわかりやすかも) https://little-hands.hatenablog.com/entry/2018/12/09/entity-value-object サービス層 https://little-hands.hatenablog.com/entry/2018/04/04/layer-obligation

naotine commented 2 years ago

大林です。プルリクありがとうございます!

要件は、必要な情報がまとめられていていい感じです! 拡張性も考慮して追加機能を考えていたのもGoodです。

実装については、単体テストを書いてみましょう! 例えば、小林さんが作成した以下のメソッドには何を期待していますか? https://github.com/tonkat-prtq/java-bingo-app/blob/07df03c2c8d50371ed5b252a186f05267be52750/src/com/company/BingoCard.java#L15-L21

ある値が入力されたとき、どんな値(または配列)が出力されればよいでしょうか? それがテストで確認できれば、コードの動きが担保できます。

Javaだと、JUnitが一般的なテストツールなのでぜひ使ってみてください。 https://qiita.com/DisneyAladdin/items/5eb314ca95db3ae34b79

tonkat-prtq commented 2 years ago

ビンゴマスを使って、ビンゴカードを作成するところまでいきました。

下記の配列allTroutにすべてのマスを用意する処理は、BingoCardクラスが持つよりドメインサービス層のほうが良さそう…? https://github.com/tonkat-prtq/java-bingo-app/pull/1/commits/5b3d1ea398ff044302d28853558eb894cbf58599#diff-a6efadcb0e039ea5b0568797ea9e4b3df0f9d30852486ae1d1339a649a296f72R20-R22