2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エンティティは勇者、ユースケースはクエスト?RPGでドメイン駆動設計の旅立ち!

2
Last updated at Posted at 2025-12-02

はじめに

ドメイン駆動設計(DDD)って、言葉が難しくてとっつきにくい…。
でも、もしそれを「RPGの世界」で例えられたら?
勇者・仲間・装備・クエスト——これらを使って、設計の考え方を楽しく学んでみましょう!

※実は、ここ数年、ドメイン駆動設計に取り組みたいなと思っているのだけど、僕の周りでは話題にすらならない状況。
そこで周りの人に布教活動をしようと思いたち、DDDに興味を持ってもらうためにこの記事を書きました!

勇者と剣:エンティティと値オブジェクト

村の広場に立つ勇者アレン。
彼は「銅の剣(攻撃力30)」を装備して旅立ちます。

このとき、設計視点は以下になります。

概念 RPGでの例 特徴
エンティティ 勇者アレン 一意のIDを持ち、状態が変化しても同一人物
値オブジェクト 銅の剣(攻撃力30) 属性の集合体。同じ属性なら同じものとみなす

パーティ構成:集約とルート

勇者アレンは魔法使いリリィ、僧侶カイとパーティを組みました。
この「パーティ」が、DDDでいう集約
その代表者がルートです。

概念 RPGでの例 説明
集約 パーティ全体 勇者・仲間・装備などの一貫したまとまり
ルート 勇者アレン 外部からの操作はこの代表者を通じて行う

クエスト:ユースケースとアプリケーションサービス

魔王討伐というクエストを進めるには、ゲームマスターが流れを調整します。
この「クエストの流れ」がユースケース、ゲームマスターが担う役割がアプリケーションサービスです。

概念 RPGでの例 説明
ユースケース 魔王討伐クエスト システムの目的と振る舞い
アプリケーションサービス ゲームマスター 外部との橋渡し役

ギルドの名簿:リポジトリ

ギルドマスターが名簿から勇者を探すように、DDDではリポジトリを使ってエンティティを保存・検索します。

概念 RPGでの例 説明
リポジトリ 冒険者ギルドの名簿 勇者や装備の情報を保存・検索する

魔法の巻物:ドメインサービス

「魔法の巻物」は誰でも使える便利な道具。
これは、特定の職業に属さないが重要な処理を担うドメインサービスの例です。

概念 RPGでの例 説明
ドメインサービス 魔法の巻物 職業に属さない重要な処理

まとめ

ドメイン駆動設計は、RPGで例えると「登場人物」「目的」「道具」「ルール」を整理すること。

この記事は楽しさを優先して、用語を説明する程度にしています。
物足りない人は、もっと詳しい解説や書籍などに取り組んでみてはいかが。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?