Slide 1

Slide 1 text

ドメイン駆動設計のエッセンス 2025年10月29日 有限会社システム設計 増田 亨 #wakecareer_勉強会 AI×設計入門 〜設計原則とドメイン駆動開発で見つける次のステップ〜

Slide 2

Slide 2 text

自己紹介 専門領域 • 業務系アプリケーションの開発 最近の仕事 • 大きな泥団子退治のアドバイザ • エンジニアの成長支援(設計スキル向上) 2 増田 亨(masuda220) 著書(2017) 訳書(2024) *1 *2 *1 増田 亨(2017) 『現場で役立つシステム設計の原則』技術評論社 *2 Vlad Khononov(著) 増田 亨、綿引 琢磨(訳) 2024 『ドメイン駆動設計をはじめよう』オライリージャパン

Slide 3

Slide 3 text

お話する内容 ①良い設計 ②実践的な設計 ③戦略的な設計 3

Slide 4

Slide 4 text

①良い設計 4

Slide 5

Slide 5 text

良い設計は悪い設計より変更しやすい 5

Slide 6

Slide 6 text

良い設計は悪い設計より変更しやすい 6 『達人プログラマー ―熟達に向けたあなたの旅』第2版 Andrew Hunt(著)David Thomas(著)村上雅章(訳) 2020年 発行:オーム社 セクション8 良い設計の本質 Tip 14

Slide 7

Slide 7 text

変更しやすいことが良い設計 機能修正や機能追加のスピードアップとコストダウンに よる事業貢献 すべての設計原則、すべての設計パターンは、 変更を楽で安全にするためにある 原則やパターンを適用して変更がやっかいで危険になる なら、原則パターンの解釈と使い方が間違っている 7

Slide 8

Slide 8 text

変更しやすいことが良い設計 機能修正や機能追加のスピードアップとコストダウンに よる事業貢献 すべての設計原則、すべての設計パターンは、 変更を楽で安全にするためにある 原則やパターンを適用して変更がやっかいで危険になる なら、原則パターンの解釈と使い方が間違っている 8 ドメイン駆動設計は変更を楽で安全にするための技法の一つ

Slide 9

Slide 9 text

②実践的な設計 9

Slide 10

Slide 10 text

より実践的なソフトウェア設計の本質 10

Slide 11

Slide 11 text

より実践的なソフトウェア設計の本質 整理整頓されたコードは 乱雑なコードよりも 変更が楽で安全である 11

Slide 12

Slide 12 text

より実践的なソフトウェア設計の本質 整理整頓されたコードは 乱雑なコードよりも 変更が楽で安全である 12 目の前にあるコードの変更容易性に焦点を合わせる

Slide 13

Slide 13 text

乱雑なコードを整理整頓するための実践技法 13

Slide 14

Slide 14 text

乱雑なコードを整理整頓するための実践技法 14 ドメイン駆動設計もコードを整理整頓するための技法の一つ

Slide 15

Slide 15 text

③戦略的な設計 15

Slide 16

Slide 16 text

16 【エッセンシャル版】 ソフトウェアの実装と 事業戦略を結びつける 高業績を持続するために 差別化戦略の立案と実行に取り組む 戦略的にコードを整理整頓する

Slide 17

Slide 17 text

ソフトウェアの実装と事業戦略を結びつける 実践技法 競争優位を生み出す差別化戦略と ソフトウェアの実装を結びつける ための、経験と事例に基づく、 実践的なガイドブック 17

Slide 18

Slide 18 text

ドメイン駆動設計の考え方 差別化による競争優位に直結する機能に焦点を合わせ、 そこのコードの整理整頓(変更容易性)に徹底的にこだ わる 競争優位に直結しない、他の企業と同じでよい機能は、 できるだけ簡略に済ませる (設計の模倣、既製品の購入、ローコード/ノーコード) 18

Slide 19

Slide 19 text

業務領域を差別化とロジックの複雑さで分類 19 競合他社との差別化 中核の 業務領域 業務ロジックの複雑さ

Slide 20

Slide 20 text

中核の業務領域に焦点を合わせる 中核の業務領域が高業績を持続させる 他社とは異なる際立つ価値を提供するためには、 業務ロジックは複雑になる 他社と比較した競争優位性を維持・発展させるために、 状況の変化に応じて業務ロジックの変更を繰り返す 20

Slide 21

Slide 21 text

差別化戦略を理解してコードを整理整頓する 1. 競合と比べて際立った違いを持つ 独自の価値を顧客に提案する 2. そのの価値を提供するために、自社 の事業活動全体を特別に調整する 3. 差別化戦略を実行するために、 中核の業務領域を特定し、そこの 変更容易性向上に優先的に取り組む 21

Slide 22

Slide 22 text

ソフトウェア設計の本質 良い設計は悪い設計より変更しやすい より実践的には、 整理整頓されたコードは乱雑なコードより変更しやすい ドメイン駆動設計の本質 競争優位を生み出す差別化戦略を理解して中核の業務領域 のコードの整理整頓に優先的に取り組む 22