<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Domain on 設計で、迷わなくなるために | 奥田智紘</title><link>https://design.okuda-studio.com/tags/domain/</link><description>Recent content in Domain on 設計で、迷わなくなるために | 奥田智紘</description><generator>Hugo -- 0.159.2</generator><language>ja</language><lastBuildDate>Mon, 09 Feb 2026 11:00:00 +0900</lastBuildDate><atom:link href="https://design.okuda-studio.com/tags/domain/index.xml" rel="self" type="application/rss+xml"/><item><title>Domain と UseCase の違いを整理してみる</title><link>https://design.okuda-studio.com/posts/0007-domain-vs-usecase/</link><pubDate>Mon, 09 Feb 2026 11:00:00 +0900</pubDate><guid>https://design.okuda-studio.com/posts/0007-domain-vs-usecase/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="#domain-%E3%81%A8-usecase-%E3%81%AE%E9%81%95%E3%81%84%E3%82%92%E6%95%B4%E7%90%86%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B"&gt;Domain と UseCase の違いを整理してみる&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E4%B8%80%E8%A8%80%E3%81%A7%E8%A8%80%E3%81%86%E3%81%A8%E4%BD%95%E3%81%8C%E9%81%95%E3%81%86%E3%81%AE%E3%81%8B"&gt;一言で言うと何が違うのか&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#domain-%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B"&gt;Domain とは何か&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#domain-%E3%81%AF%E6%84%8F%E5%91%B3%E3%81%A8%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%AE%E9%9B%86%E5%90%88%E4%BD%93"&gt;Domain は「意味」と「ルール」の集合体&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#domain-%E3%81%AE%E4%BE%8B"&gt;Domain の例&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#domain-%E3%81%8C%E3%82%84%E3%82%89%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8"&gt;Domain がやらないこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#usecase-%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B"&gt;UseCase とは何か&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#usecase-%E3%81%AF%E5%8B%95%E8%A9%9E%E3%81%AE%E5%B1%A4"&gt;UseCase は「動詞の層」&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#usecase-%E3%81%AE%E4%BE%8B"&gt;UseCase の例&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#domain-%E3%81%A8-usecase-%E3%81%AE%E9%96%A2%E4%BF%82"&gt;Domain と UseCase の関係&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%81%AA%E3%81%9C-usecase-%E3%81%8C%E5%88%86%E3%81%8B%E3%82%8A%E3%81%AB%E3%81%8F%E3%81%84%E3%81%AE%E3%81%8B"&gt;なぜ UseCase が分かりにくいのか&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#usecase-%E3%82%92%E4%BD%9C%E3%82%8B%E3%81%B9%E3%81%8D%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0"&gt;UseCase を作るべきタイミング&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#entity--domain-%E5%A4%89%E6%8F%9B%E3%81%AF%E3%81%A9%E3%81%93%E3%81%A7%E3%82%84%E3%82%8B%E3%81%B9%E3%81%8D%E3%81%8B"&gt;Entity → Domain 変換はどこでやるべきか&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#domain-%E3%81%A8-usecase-%E3%82%92%E5%88%86%E3%81%91%E3%82%8B%E6%9C%80%E5%A4%A7%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88"&gt;Domain と UseCase を分ける最大のポイント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E3%82%A2%E3%83%B3%E3%83%81%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3"&gt;よくあるアンチパターン&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="domain-と-usecase-の違いを整理してみる"&gt;Domain と UseCase の違いを整理してみる&lt;/h1&gt;
&lt;p&gt;Clean Architecture や DDD を学んでいると、ほぼ確実に次の疑問にぶつかります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Domain と UseCase の違いがよく分からない&lt;/li&gt;
&lt;li&gt;どこまでが Domain で、どこからが UseCase なのか曖昧&lt;/li&gt;
&lt;li&gt;UseCase を作ろうとすると、何を書けばいいのか分からない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;私自身、このあたりで何度も立ち止まりました。
この記事では、実装経験を通して整理できた &lt;strong&gt;Domain と UseCase の違い&lt;/strong&gt; を、自分なりの言葉でまとめてみます。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一言で言うと何が違うのか"&gt;一言で言うと何が違うのか&lt;/h2&gt;
&lt;p&gt;まず、かなり大胆に要約します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Domain&lt;/strong&gt;
→「この世界では、何が正しく、何が成り立つか」を表す&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;UseCase&lt;/strong&gt;
→「その正しさを、どういう手順・文脈で使うか」を表す&lt;/p&gt;</description></item><item><title>Domain レイヤーかどうかを判断する基準</title><link>https://design.okuda-studio.com/posts/0006-domain-layer-or-not/</link><pubDate>Sun, 08 Feb 2026 17:00:00 +0900</pubDate><guid>https://design.okuda-studio.com/posts/0006-domain-layer-or-not/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="#domain-%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%92%E5%88%A4%E6%96%AD%E3%81%99%E3%82%8B%E5%9F%BA%E6%BA%96"&gt;Domain レイヤーかどうかを判断する基準&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#domain-%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B%E7%B0%A1%E5%8D%98%E3%81%AB"&gt;Domain レイヤーとは何か（簡単に）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%88%A4%E6%96%AD%E5%9F%BA%E6%BA%96%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E3%81%9D%E3%82%8C%E3%82%92%E6%84%8F%E8%AD%98%E3%81%99%E3%82%8B%E3%81%8B"&gt;判断基準：ユーザーがそれを意識するか？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%BE%8B1%E4%BF%9D%E5%AD%98%E5%87%A6%E7%90%86%E3%81%AF-domain-%E3%81%8B"&gt;例1：保存処理は Domain か？&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E3%82%B1%E3%83%BC%E3%82%B9a%E4%BF%9D%E5%AD%98%E5%85%88%E3%82%92%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E6%84%8F%E8%AD%98%E3%81%97%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88"&gt;ケースA：保存先をユーザーが意識しない場合&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%82%B1%E3%83%BC%E3%82%B9b%E4%BF%9D%E5%AD%98%E5%85%88%E3%82%92%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E6%84%8F%E8%AD%98%E7%9A%84%E3%81%AB%E9%81%B8%E6%8A%9E%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88"&gt;ケースB：保存先をユーザーが意識的に選択する場合&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E6%84%8F%E8%AD%98%E3%81%99%E3%82%8B%E3%81%A8%E3%81%84%E3%81%86%E5%9F%BA%E6%BA%96%E3%81%AE%E4%BD%BF%E3%81%84%E3%81%A9%E3%81%93%E3%82%8D"&gt;「ユーザーが意識する」という基準の使いどころ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#usecase-%E3%81%A8%E3%81%AE%E9%96%A2%E4%BF%82"&gt;UseCase との関係&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%B3%A8%E6%84%8F%E7%82%B9%E3%81%99%E3%81%B9%E3%81%A6%E3%82%92-domain-%E3%81%AB%E5%85%A5%E3%82%8C%E3%81%AA%E3%81%84"&gt;注意点：すべてを Domain に入れない&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E8%BF%B7%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AE%E6%9C%80%E7%B5%82%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF"&gt;迷ったときの最終チェック&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="domain-レイヤーかどうかを判断する基準"&gt;Domain レイヤーかどうかを判断する基準&lt;/h1&gt;
&lt;p&gt;―「ユーザーが意識するか？」という視点―&lt;/p&gt;
&lt;p&gt;設計をしていると、次のような悩みにぶつかることがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;この処理は Domain レイヤーに置くべきか？&lt;/li&gt;
&lt;li&gt;UseCase なのか、それとも Data レイヤーの責務なのか？&lt;/li&gt;
&lt;li&gt;そもそも Domain って何を置く場所なのか？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;とくに Clean Architecture や DDD を学び始めた頃は、
「正解の置き場所」を探そうとして、かえって混乱しがちです。&lt;/p&gt;
&lt;p&gt;この記事では、私が設計を考える際に &lt;strong&gt;ひとつの判断基準&lt;/strong&gt; として使っている考え方を紹介します。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="domain-レイヤーとは何か簡単に"&gt;Domain レイヤーとは何か（簡単に）&lt;/h2&gt;
&lt;p&gt;Domain レイヤーは、ざっくり言うと&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アプリが扱う &lt;strong&gt;概念&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;その概念に関する &lt;strong&gt;ルール&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;「それは正しいかどうか」の判断&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を表す層です。&lt;/p&gt;
&lt;p&gt;技術的な詳細（DB、API、ライブラリなど）からは距離を置き、
&lt;strong&gt;アプリの意味そのもの&lt;/strong&gt; を表現する場所だと考えています。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="判断基準ユーザーがそれを意識するか"&gt;判断基準：ユーザーがそれを意識するか？&lt;/h2&gt;
&lt;p&gt;私が Domain レイヤーかどうかを判断する際に使っている基準は、次の問いです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;「ユーザーは、その機能や概念を意識してアプリを操作するか？」&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この問いに &lt;strong&gt;YES&lt;/strong&gt; なら、
その概念や処理は Domain レイヤー（または UseCase）に属する可能性が高いです。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NO&lt;/strong&gt; なら、
それは Data レイヤーや Infrastructure に閉じ込めるべきものだと考えます。&lt;/p&gt;</description></item></channel></rss>