Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
問題・解決空間
Search
nikawa2161
November 11, 2025
0
2
問題・解決空間
nikawa2161
November 11, 2025
Tweet
Share
More Decks by nikawa2161
See All by nikawa2161
「アプリ」認証追加
nikawa2161
0
1
マッチング
nikawa2161
0
3
自己肯定感
nikawa2161
0
3
コンパイルの違い
nikawa2161
0
3
error-marp.pdf
nikawa2161
0
5
difit
nikawa2161
0
49
フロントのキャッシュ
nikawa2161
0
6
Dia
nikawa2161
0
3
LLMを拡張機能に
nikawa2161
0
11
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Six Lessons from altMBA
skipperchong
29
4.1k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Writing Fast Ruby
sferik
630
62k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
What's in a price? How to price your products and services
michaelherold
246
12k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Transcript
課題を映す問題空間と、答えを描く解決空間 1
None
None
ドメインとは 現実世界から抜き出した業務領域 「ドメイン」には二つの見方がある 1. 問題空間 2. 解決空間 2
引用 ドメインは、問題空間と解決空間を持っている。 問題空間は、解決すべきビジネス戦略上の課題を浮き彫りにするもので、 もう一方の解決空間は、ソフトウェアをどのように実装してその課題を解決する かに注目するものである。 引用:実践ドメイン駆動設計 3
問題空間 解決したいビジネス上の問題や関心事を定義する領域 主要な要素 ユビキタス言語 サブドメイン(コア/支援/汎用) 4
ユビキタス言語 「共通言語」 開発者とドメインエキスパートの会話、ドキュメント、コードなどに統一的に使 用される言葉 全員が同じ言葉を使うことで、同じ土俵に立つことができる 5
ユビキタス言語 何が嬉しいの サービスに関わるすべての人・成果物の中で認識が揃う 認識が食い違ったまま開発が進んでしまうといったコミュニケーションギャ ップによる手戻りを防げる メンバー間で、あるいは同じ人であっても起こりがちな表記ゆれも、ユビキ タス言語を導入することで大幅に減らすことができる 命名の時間を節約できる 業務知識への理解が深まる 自分が取り組んでいる業務をより深く掘り下げて理解する必要がある。
その過程で、業務知識の豊富なメンバーとの対話を重ねることで、自分では 気づいていなかったケースや背景が見えてくることもある 6
サブドメインの 3 種類 コアサブドメイン 支援サブドメイン 汎用サブドメイン 7
コアサブドメイン(コアドメイン) ドメインの中で最もシステム化する価値の高い領域 ここがコケたら存在価値がない部分 リソースを集中させてビジネス価値を最大化 開発対象のアプリケーションの目的にとって、代表的で中心的なモデルの部分 が、コアドメインを構成する。 コアドメインとは、システム内で最大の価値を付加すべき場所である。 8
支援サブドメイン 業務に不可欠だが、コアドメインとはいえない領域 コアから切り出して、本質を磨く 業務に不可欠な内容を表しているが、まだコアドメインとはいえないようなモデ ルのことを、支援サブドメインと呼ぶ。 9
汎用サブドメイン ビジネスの関心事ではないがシステムに必要な領域 例: 認証・認可など(システム観点) 設計中のプロジェクトにとって動機となっていない、高凝集のサブドメインを識 別すること。 そうしたサブドメインから汎用的なモデルを括り出して、別のモジュールに入れ ること。 10
解決空間 問題空間で定義した課題を「どう解決するか」を考える領域 主要な要素 境界づけられたコンテキスト ドメインモデル 11
境界づけられたコンテキスト 単語の意味解釈が違う。 話の文脈によって単語の意味解釈が違う。 ユビキタス言語が通用する範囲を明確に区切る 同じ単語でも文脈や立場で意味が変わる 12
例:商品 販売業務の関心事: 売値、売れ筋 仕入業務の関心事: 仕入値、仕入先 共通の「商品マスタ」にすると影響範囲が広がる → それぞれを「境界づけられたコンテキスト」として扱う 13
14
ドメインモデル サブドメインを分析・抽象化したモデル システムの関心事を抽出し、業務フローやユースケースを検討 理想は「コンテキスト 1 つにサブドメイン 1 つ」 → チーム間調整が減り、開発効率が高まる
15
問題空間と解決空間の対比 観点 問題空間 解決空間 主な役割 ビジネス課題を定義 課題を解決する仕組みを設計 主要要素 サブドメイン、ユビキタス言語 コンテキスト、ドメインモデル
16
成長のサイクル 1. ドメインを「サブドメイン」に分割 2. 言葉を「ユビキタス言語」として定義 3. 解釈ごとに「コンテキスト」に区切る 4. サブドメインをモデル化して「ドメインモデル」にする 5.
モデルで得た知見を「ユビキタス言語」にフィードバック 17
18
まとめ ドメインには「問題空間」と「解決空間」がある サイクルを回すことで、 ドメインモデルが成長する ユビキタス言語が洗練される チーム全体の理解が深まる 19