りゅうじの学習blog

学習したことをアウトプットしていきます。

5/30 ドメイン駆動設計Chapter9 9-2 1

9-2 採番処理をファクトリに実装した例の確認

採番とは、一般的に「データ管理のために、それぞれのデータに固有の番号を与える」という意味で呼ばれています

  • ファクトリが活躍するわかりやすい例として、採番処理がある
    • これまでUserのインスタンスを生成する際、その識別子はGUID(Globally Unique Identifer)を利用していた

WindowsなどではUUIDと同じ形式の識別子を「GUID」(Globally Unique Identifier)と呼称している。 現代ではほとんどの場合、GUIDとUUIDは同じものを指し、同じ概念の単なる別名として扱われる

ユーザの識別子はコンストラクタで生成される

uuidはこちらのライブラリをインストールして生成します

import { v4 as uuidv4 } from "uuid";
import { UserName } from "../valueObject/UserName";
import { UserId } from "../valueObject/UserId";

export class User {
  constructor(
    public id: UserId = new UserId(uuidv4()),
    public name: UserName,
  ) {}
}
  • Userが新規作成されたときは、デフォルト引数で、uuidがidになります
    • システムによっては採番処理をコントロールしたいことがある
      • 伝統的な手法にシーケンスや採番テーブルを利用したものがある

シーケンスとは、連続(しているもの)、一続き(のもの)、順序、順番、並び、配列(する)、逐次、並べる、順序付ける、などの意味を持つ英単語。

参考

ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本