<?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>Service Class on 設計で、迷わなくなるために | 奥田智紘</title><link>https://design.okuda-studio.com/tags/service-class/</link><description>Recent content in Service Class on 設計で、迷わなくなるために | 奥田智紘</description><generator>Hugo -- 0.159.2</generator><language>ja</language><lastBuildDate>Wed, 11 Feb 2026 11:50:00 +0900</lastBuildDate><atom:link href="https://design.okuda-studio.com/tags/service-class/index.xml" rel="self" type="application/rss+xml"/><item><title>「サービスクラス」とは何か？</title><link>https://design.okuda-studio.com/posts/0009-what-is-service-class/</link><pubDate>Wed, 11 Feb 2026 11:50:00 +0900</pubDate><guid>https://design.okuda-studio.com/posts/0009-what-is-service-class/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B"&gt;「サービスクラス」とは何か？&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%A8%E3%81%84%E3%81%86%E8%A8%80%E8%91%89%E3%81%AE%E8%AA%9E%E6%BA%90%E3%81%A8%E5%9F%BA%E6%9C%AC%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%B3%E3%82%B9"&gt;「サービス」という言葉の語源と基本ニュアンス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#web--%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%B5%E3%82%A4%E3%83%89%E3%81%A7%E3%81%AE-service-%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E8%B5%B7%E6%BA%90"&gt;Web / サーバーサイドでの Service クラスの起源&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%81%AA%E3%81%9C%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%8C%E5%95%8F%E9%A1%8C%E8%A6%96%E3%81%95%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%8B"&gt;なぜ「サービスクラス」が問題視されるようになったのか&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ddd-%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Bservice%E3%81%A8%E3%81%AE%E5%88%86%E5%B2%90"&gt;DDD における「Service」との分岐&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#usecase-%E3%81%AF%E4%BD%95%E3%81%AB%E5%AF%BE%E3%81%99%E3%82%8B%E3%82%A2%E3%83%B3%E3%83%81%E3%83%86%E3%83%BC%E3%82%BC%E3%81%AA%E3%81%AE%E3%81%8B"&gt;UseCase は何に対するアンチテーゼなのか&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#web-%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%8C%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%A8%E8%A8%80%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E6%84%8F%E5%91%B3"&gt;Web エンジニアが「サービスクラス」と言うときの意味&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-%E4%B8%AD%E7%AB%8B%E7%9A%84%E3%81%AA%E6%84%8F%E5%91%B3"&gt;1. 中立的な意味&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-%E5%90%A6%E5%AE%9A%E7%9A%84%E3%81%AA%E6%84%8F%E5%91%B3%E8%A8%AD%E8%A8%88%E8%AD%B0%E8%AB%96"&gt;2. 否定的な意味（設計議論）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E3%81%BE%E3%81%A8%E3%82%81"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="サービスクラスとは何か"&gt;「サービスクラス」とは何か？&lt;/h1&gt;
&lt;p&gt;──語源・ニュアンス・UseCaseとの違いを整理する&lt;/p&gt;
&lt;p&gt;設計の議論をしていると、「それ、サービスクラスじゃない？」という言葉が出てくることがある。
一方で、Web エンジニアの中には「Service クラス」は普通に使う用語だ、という人も多い。&lt;/p&gt;
&lt;p&gt;この「サービスクラス」という言葉は、&lt;strong&gt;厳密な定義がなく、文脈によって意味が変わる&lt;/strong&gt;ため、混乱を生みやすい。
この記事では、語源と歴史をたどりながら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;なぜ「サービス」と呼ばれるのか&lt;/li&gt;
&lt;li&gt;Web ではどのように使われてきたのか&lt;/li&gt;
&lt;li&gt;なぜ設計議論では否定的に使われることがあるのか&lt;/li&gt;
&lt;li&gt;UseCase と何が違うのか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を整理する。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="サービスという言葉の語源と基本ニュアンス"&gt;「サービス」という言葉の語源と基本ニュアンス&lt;/h2&gt;
&lt;p&gt;英語の &lt;em&gt;service&lt;/em&gt; は、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;奉仕&lt;/li&gt;
&lt;li&gt;提供&lt;/li&gt;
&lt;li&gt;役務&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;といった意味を持つ。&lt;/p&gt;
&lt;p&gt;ソフトウェア設計においては、そこから転じて、&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;/p&gt;
&lt;p&gt;この時点では、「サービス」はあくまで
&lt;strong&gt;役割を説明するための便利な言葉&lt;/strong&gt;であり、設計上の厳密な概念ではない。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="web--サーバーサイドでの-service-クラスの起源"&gt;Web / サーバーサイドでの Service クラスの起源&lt;/h2&gt;
&lt;p&gt;「サービスクラス」という言葉が広く使われるようになったのは、
Java EE や Spring に代表される &lt;strong&gt;レイヤードアーキテクチャ&lt;/strong&gt;の文脈である。&lt;/p&gt;
&lt;p&gt;典型的な構成は以下のようなものだ。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Controller
↓
Service
↓
Repository (DAO)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ここでの Service クラスは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Controller から呼ばれる&lt;/li&gt;
&lt;li&gt;複数の Repository を組み合わせる&lt;/li&gt;
&lt;li&gt;トランザクション境界になる&lt;/li&gt;
&lt;li&gt;業務ロジックを書く場所&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という役割を担っていた。&lt;/p&gt;</description></item></channel></rss>