ドメイン駆動設計の基礎と仕様変更に強いドメインモデリングの実践ポイント <オンラインセミナー>
~ ドメイン駆動設計を導入するメリットと効果、ユビキタス言語とコンテキストマップ、モデル駆動設計、ドメイン駆動設計の導入と実践のポイント ~
・複雑な業務を整理し、ドメイン(業務領域)を中心に据えた保守性の高いソフトウェア設計の方法論を体系的に修得し、実践するための講座
・ビジネスと開発の共通言語をつくり、システムを適切に分割し、変更に強い設計を実現するドメイン駆動設計を修得し、高品質なシステム開発へ応用しよう!
オンラインセミナーの詳細はこちら:
・WEB会議システムの使い方がご不明の方は弊社でご説明いたしますのでお気軽にご相談ください。
講師の言葉
ソフトウェアは、ビジネスの問題を解決するために存在します。しかし、開発現場では「仕様の認識がずれていた」「修正のたびにバグが増える」「コードが複雑すぎて誰も触れない」といった問題が繰り返されています。
本講座では、そうした問題の根本原因を「ドメイン(業務領域)の理解不足」と捉え、ドメイン駆動設計(DDD)の考え方と実践手法を体系的に学びます。
ビジネスと開発の共通言語をつくり、システムを適切に分割し、変更に強い設計を実現するための具体的なアプローチを、コード例を交えながら解説します。受講後は、複雑な業務要件を整理してソフトウェアに正しく落とし込む力が身につきます。
セミナー詳細
| 開催日時 |
- 2026年07月22日(水) 10:00 ~ 17:00
|
| 開催場所 |
オンラインセミナー |
| カテゴリー |
オンラインセミナー、ソフト・データ・画像・デザイン |
| 受講対象者 |
・ソフトウェア開発に携わるエンジニア(経験1年以上)
・システム設計に興味のある方
・保守性の高いコードを書きたい方
・ドメイン駆動設計に興味があり、基礎から学びたい方 |
| 予備知識 |
・オブジェクト指向プログラミングの基本的な理解(クラス、継承、カプセル化など)
・何らかのプログラミング言語での開発経験
・Webアプリケーション開発の基礎知識があると理解しやすい |
| 修得知識 |
・ビジネスと開発チームの「認識のズレ」をなくす設計アプローチを理解できる
・変更に強く、保守しやすいソフトウェア構造の作り方を習得できる
・複雑な業務仕様をコードに正確に反映するための実践パターンを適用できる
・CQRS・イベントソーシングなど、現場で使われる関連設計パターンの概要を理解できる |
| プログラム |
1. ドメイン駆動設計の基礎
(1).ソフトウェアの存在意義
a.システムの価値と利害関係者の要求
b.問題領域と解決領域
(2).ドメインとは
a.問題領域と解決領域の定義
b.サブドメイン(コアドメイン、支援ドメイン、汎用ドメイン)
(3).なぜドメインを重視するのか
a.ドメインを重視しないときの問題
b.ドメインを重視する意義
c. ドメインを使って複雑さに対処する
(4).ドメインモデル
a.ドメインモデルとは何か
b.ドメインモデルの考え方を反映したコード
c.ドメインモデルを反映しないコードの問題点
d.ドメインモデルの有用性
(5).ドメイン駆動設計を導入するメリットと効果
a.ビジネスと開発の意思疎通が向上する理由
b.複雑な仕様変更に強くなる構造
c.保守性・拡張性の向上と技術負債の削減
d.チーム開発における生産性向上
2. ドメインの境界設定とユビキタス言語
(1).ユビキタス言語
a.ユビキタス言語とは
b.ユビキタス言語がないと何が問題か
c.ユビキタス言語でどう解決するか
d.ユビキタス言語の例
(2).境界づけられたコンテキスト
a.ユビキタス言語の境界
b.境界を意識したモデル設計
c.コンテキスト間の連携
(3).コンテキストマップ
a.コンテキストマップの種類と役割
b.組織パターン(パートナーシップ、別々の道、順応者、顧客/供給者)
c.統合パターン(巨大な泥団子、共有カーネル、腐敗防止層、
公開ホストサービス、公表された言語)
3. モデル駆動設計とそのポイント
(1).設計の基本
a.わかりやすい変数名を使う
b.長い処理は段落に分割する
c.目的ごとに変数を用意する
d.メソッドとして独立させる
e.狭い関心事に特化したクラスを作る
(2).モデル駆動設計
a.モデル駆動設計とは
b.ドメインを隔離する
c.レイヤ化アーキテクチャ
(3).ビルディングブロック
a.エンティティ
b.値オブジェクト
c.ドメインサービス
d.モジュール
(4).値オブジェクトの設計
a.ドメイン上のデータとロジック
b.基本データ型の落とし穴
c.値オブジェクトを定義する利点
d.値オブジェクトの設計パターン(ファーストクラスコレクションなど)
4. ドメインモデルの実装ポイント
(1).トランザクションスクリプトを避ける
a.トランザクションスクリプトとは
b.トランザクションスクリプトの問題点
(2).知識をドメインオブジェクトに集約する
a.メソッドをロジックの置き場にする
b.ドメインモデルを画面・DBの都合から独立させる
(3).データモデルとドメインモデルの違い
a.データモデルとドメインモデルの比較
b.ドメインモデル貧血症とは
(4).ライフサイクル管理
a.集約(アグリゲート)
b.リポジトリ
c.ファクトリ
d.オブジェクトの自己防衛義務
(5).集約を実装するルール
a.集約のルートエンティティの責務
b.集約境界と参照の制限
c.ID参照とトランザクション境界
(6).関連する設計パターン
a.CQRS(コマンド・クエリ責務分離)
b.イベントソーシング
c.イベントストーミング
5.ドメイン駆動設計の導入と実践のポイント
(1).小さく始めるDDD導入ステップ
(2).既存システムへの適用方法(レガシー改善)
(3).成功事例と失敗事例から学ぶ
(4).DDDに向いているプロジェクトの特徴
(5).明日から使える実践チェックリスト
6. まとめとQ&A
|
| キーワード |
ドメイン駆動設計 DDD ドメインモデル ユビキタス言語 境界づけられたコンテキスト コンテキストマップ サブドメイン コアドメイン エンティティ 値オブジェクト 集約 アグリゲート リポジトリ ドメインサービス トランザクションスクリプト CQRS コマンド クエリ責務分離 イベントソーシング |
| タグ |
ソフト管理、ソフト外注管理、ソフト品質、ソフト教育、ソフト知的財産 |
| 受講料 |
一般 (1名):49,500円(税込)
同時複数申込の場合(1名):44,000円(税込)
|
| 会場 |
オンラインセミナー
本セミナーは、Web会議システムを使用したオンラインセミナーとして開催します。
|