Skip to Content
Pythonによるアーキテクチャパターン
book

Pythonによるアーキテクチャパターン

by Harry Percival, Bob Gregory
March 2025
Intermediate to advanced
304 pages
4h 33m
Japanese
O'Reilly Media, Inc.
Content preview from Pythonによるアーキテクチャパターン

第1章 ドメインモデリング ドメイン・モデリング

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

この章では、TDDと親和性の高い方法で、ビジネスプロセスをコードでモデリングする方法について考察する。 なぜドメインモデリングが重要なのかについて説明し、ドメインをモデリングするためのいくつかの重要なパターンを見ていく:エンティティ、バリューオブジェクト、ドメインサービスである。

図1-1は、ドメインモデルパターンをシンプルに視覚化したものである。この章ではいくつかの詳細を説明し、他の章に進むにつれて、ドメインモデルを中心に物事を構築していくが、核となるこの小さな図形はいつでも発見できるはずだ。

apwp 0101
図1-1. ドメイン・モデルの説明図

ドメインモデルとは何か?

序章では、3階層化アーキテクチャの中心層をビジネスロジック層という言葉で説明した。 本書の残りの部分では、代わりにドメインモデルという用語を使うことにする。これは、DDDコミュニティからの用語で、我々の意図する意味をよりよく捉えている(DDDについては次のサイドバーを参照)。

ドメインとはあなたが解決しようとしている問題を言い換えたものだ。著者は現在、家具のオンライン小売業者で働いている。 どのシステムについて話しているかにもよるが、ドメインは購買・調達かもしれないし、製品設計かもしれないし、物流・配送かもしれない。ほとんどのプログラマは、ビジネスプロセスの改善や自動化に日々取り組んでいる。

モデルとは、有用な特性を捉えたプロセス( )や現象のマッピングのことである。人間は例外的に、頭の中で物事のモデルを作り出すのが得意である。例えば、誰かがあなたに向かってボールを投げると、あなたはほとんど無意識のうちにその動きを予測することができる。あなたのモデルは決して完璧ではない。光速に近い速度や真空状態でのオブジェクトの挙動について、人間はひどい直感を持っている。だからといって、そのモデルが間違っているということにはならないが、いくつかの予測はそのモデルの範囲外ということになる。

ドメインモデルとは、ビジネスオーナーが自分のビジネスについて持つメンタルマップである。すべてのビジネスパーソンがこのメンタルマップを持っている。

専門用語は、複雑なシステムで共同作業をしている人々の間で自然に生まれるものだ。

不幸な読者が突然、友人や家族とともにエイリアンの宇宙船に乗って地球から何光年も離れた場所に飛ばされ、第一原理からどうやって家に帰るかを考えなければならなくなったとしよう。

最初の数日は、ただ適当にボタンを押すだけかもしれないが、すぐにどのボタンが何をするのかがわかるようになり、お互いに指示を出し合えるようになる。 点滅装置の近くにある赤いボタンを押して、レーダー装置のそばにある大きなレバーを投げるんだ」と言うかもしれない。

数週間もすれば、船の関数を説明する言葉を採用するようになり、より正確になっていった:「貨物室3の酸素濃度を上げる」とか、「小型スラスターのスイッチを入れる」とか。数ヵ月後には、複雑なプロセス全体を表す言葉を採用するようになる:"着陸シーケンス開始 "とか "ワープ準備 "とか。このプロセスは、共有用語集を作るための正式な努力をしなくても、ごく自然に起こるだろう。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

技術リーダーシップのための14のヒント

技術リーダーシップのための14のヒント

島田 浩二
Kubernetesで実践するクラウドネイティブDevOps

Kubernetesで実践するクラウドネイティブDevOps

John Arundel, Justin Domingus, 須田 一輝, 渡邉 了介
AWS上のシステム設計

AWS上のシステム設計

Jayanth Kumar, Mandeep Singh

Publisher Resources

ISBN: 9798341624863