ブラックトランザクションの最終コメントの整理

3225 ワード

最終コメントの整理🎉


すべての質問の答えとコードコメントを整理📝
PRリンク:https://github.com/woowacourse/java-blackjack/pull/323

1. DTO


Q.DTOはドメインオブジェクトが持つすべての属性を持つ必要はありませんか?必要に応じてドメインが持たない属性もDTOを持つことができますか?規定のルールがあるかどうか知りたいです!
A.良いDTOはドメインオブジェクトのすべての属性を持つ必要はありません.ビューに余分なデータを追加する必要がないためです.また、必要に応じて、ドメインが持たない属性を持つこともできます.
いいですよ.(例えば、exを計算してより高い値を表すフィールドなど)
Q.DetamingとSuitを出力形式に変換する位置をビューに変換する必要はありますか?これで、DTOで作成したViewクラスにアクセスし、情報を置き換えて保存しています.DTOからViewへ
私たちは彼に近づくのを避けるべきですか?
public static CardDto from(Card card){
    String denomination=DenominationView.getName(card.getDenomination());
    String suit=SuitView.getName(card.getSuit());
    return new CardDto(denomination,suit);
}
A.データ転送の役割を果たすだけで十分ですが、ここでデータを入力するとさらに複雑になります.タスクにdtoを書く必要はありませんが、すでに実装されています.データ転送ロールとして使用するだけでいいのではないでしょうか.

2.カードの出力フォーマットを変更した場合?

  • DeminationとSuitが持つ名前は出力(ビュー)セクションに関係していると思いますので、名前を管理するために個別のビューパッケージを作成しました.
  • このようにすることができるかどうか、改善点があるかどうか、私は評論家に聞いて、そして返事をもらいました.
  • のコメンテーターは「『クローバー』以外の文章はビューに作成すべきで、本来の名前はドメインにあるべきだと思います」と話しています.「クローバー」という概念自体は変わらないからだ.
  • でもenumがCLOVERを発表した頃からクローバーという概念があったので、別の名前をつける必要はないと思います.
  • については、互いに衝突する観点が多く、自分で考え、自分の基準を制定すべきだと思います.
  • DetamingとSuitの名前は現在他のどのドメインでも使用されていませんが、これは本当に表示のためのフィールドではありませんか?
    ビューでDetamingとSuitの名前を管理すると、ビューがドメインを知らないという原則に反するのではないでしょうか.
  • https://github.com/woowacourse/java-blackjack/pull/323#discussion_r829814228