## 気づき - 何を公開にして、何を非公開にするかの肌感覚を持つ - `type StudentStatus = "在籍中" | "休会中" | "退会済" | "卒業済";` 👈これってexportすべき? - 値オブジェクトとUnion型の使い分けは? - exportすると、利用者側がこの型の変数を宣言できる - この変数を宣言するタイミングって、どのタイミングだろう・・・ - [enum, union, as constの使い分け](https://zenn.dev/arfes/articles/e90c3b0bc30b08) - 参考になった。使い分けの仕方をあまり理解できていなかった - 基本はunionでよさそう - `MailAddress.create(address)` と `new MailAddress(address)` のどっちがよいか? - [github commit ドメイン層のstudentとemail-address](https://github.com/kmishima16/praha-challenge-ddd/commit/6276ccc8037d3b04626edcf7b699d7fe0963bcb2#diff-026690ea86ca7b4beded0940a86d23bccb0bdfb30fd4bfad6801af1e378b5ae6R4-R13) - `readonly id`と `private id` と `#id`の違いは? - readonly: 外部クラスから読み取り可能 - private: アクセス修飾子 クラス内部からのみアクセス可能 - `#id`: ECMAScriptのプライベートフィールド JSの言語レベルで強制されるプライベート コンパイル後のJSでもアクセスが出来ない - リポジトリの型はプリミティブ型にすべき?値オブジェクトにすべき? - `invoke`と`execute`の違いは? - どちらも実行するだけど、プラハのテンプレートだとinvokeを使っていた - taskとassignmentの命名、逆だった - assignmentは「課題」という意味なので、現在の進捗状況という意味でtaskを使った方が認識にズレがなさそう - 変更前 - task: プラハの課題マスタ - assignment: 各生徒の現在のtaskの進捗状況 - 変更後 - assignment: プラハの課題マスタ - task: 各生徒の現在のtaskの進捗状況