ドメイン駆動設計 入門

#ソフトウェア設計

ドメイン駆動設計 入門 SOLID原則からドメイン駆動設計まで、設計の全体像をつかむ

変化するビジネスに、負けない設計を。

Overview

研修概要

ドメイン駆動設計 入門は、SOLID原則からドメイン駆動設計に至るまでの変化に強い設計の全体像をつかむことを目標とした研修です。

オブジェクト指向設計の基礎からドメインモデリングの考え方までを一気通貫で提供することで、技術的負債や設計の属人化を抑制し、事業の変化に追随できる開発体制を確立させます。

Issues

こんな課題を持つ企業におすすめ

ビジネス現場

  • 仕様変更のたびに広範囲の改修が発生し、リリース遅延とコスト超過を招いている
  • 設計判断が特定のエンジニアに依存し、担当者交代時の引き継ぎコストが増大している
  • 機能追加を重ねるうちにシステムが複雑化し、変更の影響範囲を予測できなくなっている
  • 若手・中堅エンジニアの設計力が育たず、属人化が解消されないまま運用が続いている
Goals

本研修の到達目標

For Engineers

開発現場

  • 1設計の基礎を体系的に説明できるSOLID原則やレイヤードアーキテクチャなど、変化に強い設計の考え方を整理して説明できるようになります。
  • 2ドメイン駆動設計の思想を理解するユビキタス言語やモデル駆動設計、戦略的設計・戦術的設計といったDDDの全体像を理解できるようになります。
  • 3業務全体を捉えて設計を考える目先のタスクだけでなく、担当システムが関わる業務全体を踏まえた設計判断ができるようになります。
For Organization

組織への期待効果

  • 1リリース遅延・コスト超過の抑制変化に強い設計原則を組織に浸透させ、仕様変更のたびに発生する手戻りと工数超過を抑制します。
  • 2設計の属人化リスクの低減共通言語と設計の考え方をチームで共有し、担当者交代時の引き継ぎコストを最小化します。
  • 3事業戦略の変化に追随できる開発体制の確立ドメインモデルを軸にした設計判断により、事業ピボットや機能拡張に柔軟に対応できる体制を築きます。
Features

本研修の特長

Feature 01

SOLIDからDDDへの一気通貫の理解

個別の原則やパターンの暗記に終わらせず、SOLID原則からドメイン駆動設計に至る設計思想のつながりを体系的に解説します。

Feature 02

概念を日常業務に接続する視点

少人数でのディスカッションを交えながら、明日からの設計判断や業務理解にどう活かすかを言語化します。

Feature 03

業務全体を捉える力を養う内容

属人化や技術的負債の根本原因である業務全体像の欠如に着目し、視座を引き上げる構成にしています。

Curriculum

研修カリキュラム

期間:2日間 / 座学とディスカッションを中心に、一部サンプルアプリケーションの確認を含む構成

日程 章・学習テーマ 学習内容・習得スキル
1日目 ソフトウェア設計の重要性

外部品質と内部品質という2つの視点からソフトウェア品質を捉え、ドメイン駆動設計との関わりと設計工程全体の流れを座学で学びます。

オブジェクト指向に沿った設計思想

責務を層に分けるレイヤードアーキテクチャと、変化に強いクラス設計を支えるSOLIDの原則を座学で学びます。あわせてATMシステムを題材にした設計例やGoFの代表的なデザインパターンを座学で学び、様々なアーキテクチャスタイルについてはディスカッションとハンズオンを交えて理解を深めます。

ドメイン駆動設計

ドメインとドメインエキスパートの関係、境界づけられたコンテキスト、コンテキストマップという戦略的設計の考え方を、座学とディスカッションを通じて学びます。

2日目 ドメイン駆動設計:ユビキタス言語

プロジェクトの関係者が共通で用いる言語を設計に落とし込む、ユビキタス言語の考え方と実践方法を、座学とディスカッションを通じて学びます。

ドメイン駆動設計:ドメインモデル

ビジネス領域の概念をソフトウェアのモデルとして表現する、ドメインモデル設計の基本的な考え方を座学で学びます。

ドメイン駆動設計:エンティティ・集約・リポジトリ

エンティティの特定、識別子・振る舞い・集約の検討など、戦術的設計の実践ノウハウを、座学とディスカッションを通じて学びます。

ドメイン駆動設計:値オブジェクトとサンプル紹介

値オブジェクトの考え方を整理したうえで、ドメイン駆動設計に基づくサンプルWebアプリケーション(Java)の動作をハンズオンで確認します。

研修内容のカスタマイズについて 本研修で扱うアーキテクチャや設計パターンの範囲、ディスカッションのテーマ設定については、御社の開発言語や既存システムの状況に合わせてカスタマイズした内容での実施も可能です。ぜひお気軽にご相談ください。
Environment

必要な受講環境と前提知識

受講環境

本研修はオンライン・集合形式のいずれでも実施可能です。座学とディスカッションを中心に進行し、一部サンプルアプリケーションの動作確認を行います。

受講機器サンプルコードでのハンズオンが行えるPC
ネットワーク環境インターネットに接続できるネットワーク環境
確認内容ドメイン駆動設計に基づくサンプルWebアプリケーション(Java)の動作確認

前提知識

  • 業務理解:経験年数は問いません。携わっているシステムが関わる業務全体を捉えられていることを前提とします。
  • ご注意:日常業務がタスクの完遂で完結しており、業務全体が見えていない場合、演習内容の理解が難しくなることがあります。
  • 技術知識:Java、C#等オブジェクト指向言語の基本的な文法(クラス、継承、インターフェイスなど)を理解していること。
Contact

お問い合わせ

本研修に関するご質問・お申し込みは、以下のフォームよりお問い合わせください。
担当者より2営業日以内にご連絡いたします。

必須 プライバシーポリシーを確認し、同意する