ISBN 9784774190877

現場で役立つシステム設計の原則 : 変更を楽で安全にするオブジェクト指向の実践技法

現場で役立つシステム設計の原則 : 変更を楽で安全にするオブジェクト指向の実践技法
著者
増田亨
出版社
技術評論社
刊行
2017-07

概要

変更コストを下げるOOP設計を現場の経験から体系的に習得する

想定読者

Webアプリ実務経験があり、ビジネスロジックの肥大化・変更困難さに課題を感じている中堅エンジニア。DDDに興味があるがEric Evansの原著は敷居が高いと感じている人

こんな人には向いていない

  • DDDの戦術・戦略パターン(集約・境界付きコンテキスト等)を実践済みのエンジニアには扱う内容が基礎的すぎる
  • プログラミング自体を始めたばかりの初学者には、現場での困りごとをイメージするための実務経験がまだ不足している
  • マイクロサービス分割・CQRSなどアーキテクチャ全体設計の理論を求める読者には範囲が実装レベルに絞られすぎている

この本で身につくこと

  • 値オブジェクトを活用してビジネスルールとバリデーションをクラス内に閉じ込める設計を実装できる
  • ControllerやServiceに流れ出したロジックをドメインモデルへ移動させるリファクタリング手順を実践できる
  • 条件分岐の増殖をinterfaceと多態性で置き換え、変更が一箇所で完結する構造をつくれる
  • 「小さくまとめてわかりやすくする」という設計原則をクラス・メソッドの命名と分割粒度に一貫して適用できる
  • ドメインモデル中心の設計が変更コストを下げる理由を、具体的なコード例をもとに他者に説明できる

ハイライト(外部からの言及)

「現場でこんなことに困っていた」「解決策としてこうやった」「その結果こうなった」というリアルな経験と「なぜ、そうするのか」をふまえて解説 — 出典

設計書ではなく実務課題の解決史として読める本書の性格を端的に示している

読了後にできること

Before(読む前): ControllerやServiceにビジネスロジックが集積し、仕様変更のたびに影響範囲が読めず修正箇所を探し回っていた

After(読み終えた後): 値オブジェクトとドメインモデルにロジックを集約することで、変更が局所化された設計の判断軸を持てる

章立て

(公式情報未確認 — 出版社公式ページの目次が公開され次第、本セクションを更新予定)

関連記事 / 参考情報

学習のヒント

  • 第1章「小さくまとめてわかりやすくする」は本書全体の設計原則を凝縮している。最初に通読して軸を把握してから後続章を読むと理解が深まる
  • 値オブジェクトと多態性の章は手元の実務コードで実際に書き換えを試みながら読むと定着が格段に早くなる
  • 「やっと読めるようになった」と感じた読者が多い本書は、スパゲッティコードの保守で具体的に困った後が最も吸収しやすいタイミング。初読で難解に感じた場合は半年後の再読を推奨する

前提知識

  • Java またはC#など静的型付きオブジェクト指向言語での実務開発経験(1年以上)
  • MVCフレームワーク(Spring Boot・Rails等)を使ったWebアプリケーション開発経験
  • インターフェース・継承・カプセル化の基本構文が読み書きできるレベルの理解

次に読む本

ドメイン駆動設計(エリック・エヴァンス)

本書で実装視点から触れたDDDの概念を、戦略・戦術パターン全体として体系的に理解する定番

Clean Architecture(Robert C. Martin)

ドメインモデル中心設計をアーキテクチャレベルに拡張し、依存の方向性とレイヤー構造を整理する

リファクタリング 第2版(Martin Fowler)

本書で示す設計改善の方向性を、体系的なリファクタリングカタログで実装技法として深堀りする

出版社による内容紹介

日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者ほか数多くの経験を持つ著者が「現場でこんなことに困っていた」「解決策としてこうやった」「その結果こうなった」というリアルな経験と「なぜ、そうするのか」をふまえて解説!

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。