👌

Clean Architectureを物語で例えたらわかりやすくなった! 〜魔法のパン屋からひも解くClean Architecture〜

に公開

はじめに

システム開発の本や記事でよく目にする「Clean Architecture」。 でも、最初に図を見たとき、**「円がいっぱい重なってるけど、結局どういうこと?」**と思った方も多いのではないでしょうか。

私もそのひとりでした。 専門用語の説明を読んでも、なんとなく分かったような分からないような……。 「結局、現場でどう役立つの?」という疑問が残っていました。

今ではいい感じに自分の中では整理できてると思うのですが、それを他人に理解してもらおうとすると、難しいからわからないと言われることも度々ありました。

そこで試しに、日常の風景にたとえて考えてみることにしました。 すると頭の中で生まれたのが、この「魔法のパン屋さん」の物語です。

簡単なおとぎばなしを舞台にすることで、

役割分担の大切さ

変わらないものと変わるものの分離

長く続けられる仕組みづくり

といったClean Architectureの本質が、ずっとイメージしやすくなりました。

この記事では、その物語を通して「Clean Architectureってこういうことか!」と感じてもらえるようにお届けします。

魔法のパン屋さん

パン屋の普段の様子

町の広場に、ちょっとふしぎな「まほうのパン屋さん」があります。

お店の中には、ふしぎな道具が並んでいます。
生地をこねる道具、ふくらませる道具、焼きあげる道具……。
どれも決まった使い方をすれば、毎日同じおいしさを出してくれます。

棚にはいろんなパンが並んでいました。
- 山登りでもつぶれないように固めに焼いた「やまのぼりパン」
- 子どもがにっこりする「りんごジャムパン」
- お誕生日を祝う大きな「おいわいケーキパン」
- 遠くのおばあちゃんに贈るための、日もちする「ながもちパン」

お店では今日もたくさんの人が働いています。

  • 受付係が注文票を受け取り、「これは“やまのぼりパンの順番”ね」と声をかけます。
  • 職人は、その順番にそって道具を選び、パンをこしらえます。
  • 倉庫係は必要な道具を取り出したり戻したり。奥の取引相手のことは職人には伝えません。
  • 出来上がったパンは、接客係が「今日焼きたてです」「お子さん向けに甘めです」と、お客さんの言葉に整えて説明します。
  • そしてお客さんがパンを選ぶのは、ショーケースやメニュー表がそろったお店の内装のおかげです。

それぞれが自分の役割を果たすから、町の人は毎日安心してパンを買えるのです。


どうしてこのような役割分担になったのか

でも、むかしはちがいました。

最初は、パン職人ひとりだけ。
こねて、焼いて、売って、説明して……ぜんぶ自分でやっていました。

けれど忙しい日には味がぶれたり、見習いが入っても仕事を覚えられなかったり。
「これでは長く続けられない」と悩みました。

そこで職人は考えました。
変わらない決まりは道具に覚えさせよう、と。
すると誰が使っても同じパンができるようになりました。

道具が増えると今度は管理が大変になり、倉庫係が生まれました。
お客さんが増えると説明の仕方が必要になり、接客係が登場しました。
さらにお店が広がると、受付係が依頼ごとの「順番」を仕切るようになりました。
そして最後に、ショーケースや内装を整えたことで、誰が来ても同じ体験ができるようになったのです。


パン屋が学んだこと

こうして「まほうのパン屋さん」は、
ひとりの職人からはじまり、
役割をわけ、仕組みを整え、
“変わらないもの”と“よく変わるもの”を分けて守るお店になりました。

だからこそ、今日も安心してパンを焼けるし、
明日もしショーケースを新しくしたり、倉庫を移したりしても、
パンそのものの味は変わらないのです。

町の人は今日もにっこり。
「このお店なら、どんなパンでも、いつ来ても安心だね!」


Clean Architectureとの対応表

  • 魔法の道具 → Entity(ビジネスルール)
  • 注文の順番を決める受付係 → Controller(ユースケースの起動)
  • パン職人(依頼ごとの手順をこなす) → Use Case(アプリケーション固有ルール)
  • 倉庫係(道具の出し入れや外部とのやりとり) → Gateway / Repository(外部境界)
  • 接客係(わかりやすい言葉に整える) → Presenter(ViewModel変換)
  • お店の内装(ショーケース・メニュー表・導線) → UI(画面・入出力)

※この分担によって、それぞれを独立に変えたり入れ替えたりでき、長く続くお店=長く保守できるシステムができあがるのです。

Discussion