Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門

 今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門

①ソフトウェア開発の基本課題
②AI技術をソフトウェア開発に活用するアプローチ
③これからのソフトウェア開発にどう取り組むか
④ドメイン駆動設計 再入門

Avatar for 増田 亨

増田 亨 PRO

August 05, 2026

More Decks by 増田 亨

Other Decks in Technology

Transcript

  1. 自己紹介 著書(2017) *1 増田 亨(masuda220) 専門領域 訳書(2024) • 業務系アプリケーションの開発 *2

    最近の仕事 • 技術的負債を返済するお手伝い • エンジニアの設計スキル向上のお手伝い *1 増田 亨(2017) 『現場で役立つシステム設計の原則』技術評論社 *2 Vlad Khononov(著) 増田 亨、綿引 琢磨(訳) 2024 『ドメイン駆動設計をはじめよう』オライリージャパン 2
  2. 設計スタイルの選択 BUDF: Big Design Up Front 大きな事前設計 建築や量産型製造業では一般的 ウォーターフォール的なソフトウェア開発 IterativeでIncrementalな設計

    小さな設計の反復 最初に小さな設計を行い(Enough Design Up Front) その結果を観察し、小さな設計改善を行う これを繰り返す 20
  3. 30

  4. ドメイン駆動設計の目指すところ • 事業活動のモデルと設計に焦点を合わせる • 知識豊富な設計、深いモデルの探求 • 人と人との相互作用 コミュニケーション • モデルと実装を一致させる

    参考:エリックエヴァンス『ドメイン駆動設計』まえがき、1章、2章、3章 事業目的適合性と発展性を向上するための基本原則 32
  5. ドメイン駆動設計の土台となる知識と技能 • 業務ロジックと入出力を分離する • • ビジネスルールの表現することに特化したクラスを作る 画面、データベース、通信に依存した構造から切り離す • ビジネスルールをプログラミング言語で記述する •

    • アプリケーション特化のデータ型を定義して組み合わせる 区分、日付、期間、金額、数量、比率、… • モデルとコードの継続的なリファクタリング • • 事業活動を学び理解したことを、モデルと実装に反映 ソフトウェアの事業目的適合性と発展性を向上する 34
  6. 他社と同じ 自社独自 一般の 業務領域 中核の 業務領域 一般 または 補完 補完的な

    業務領域 業務ロジック の複雑さ 競合他社との差別化 42
  7. 他社と同じ 自社独自 一般の 業務領域 中核の 業務領域 一般 または 補完 補完的な

    業務領域 変更容易性の 改善に継続的に 取り組む 業務ロジック の複雑さ 競合他社との差別化 43
  8. 模倣または 購入を検討 他社と同じ 自社独自 一般の 業務領域 中核の 業務領域 一般 または

    補完 補完的な 業務領域 業務ロジック の複雑さ 簡略に 済ませる 競合他社との差別化 44
  9. 現実世界のドメイン駆動設計(13章) こういうことはありえないし、必要もない(第13章) • • • • チーム全員がドメイン駆動設計を熟知している 最初から全員が役に立つモデルの探求に全力をつくす 全ての関係者が同じ言葉を忠実に使う 既存システムや外部サービスを考慮しなくてよい制約の少ない新規案件

    ➢ドメイン駆動設計のすべての技法を使う必要はない ➢ドメイン駆動設計が組織として受け入れられていない状況でも実践は可能 ✓ 適切な道具を必要に応じて選択的に使う ✓ それぞれのやり方の背景にある考え方と原則を意識して使う ✓ 組織の変化とソフトウェアの成長に忍耐強く取り組む 47