ISBN 9784814400331
オブジェクト設計スタイルガイド
- 出版社
- オライリー・ジャパン
- 刊行
- 2023-07
Amazonアソシエイトおよび楽天アフィリエイト等の広告リンクを含みます。Amazonのアソシエイトとして tech-book.net は適格販売により収入を得ています。
詳細
概要
オブジェクトの種類別に設計ルールを体系化して習得する
想定読者
OOP の基礎構文は使えるが、設計判断を再現可能なルールとして言語化し、実務やチームのコードレビューに定着させたい中堅エンジニア。Java / Python / C# など特定言語に依存せず設計の原則を整理したい人に向いています。
こんな人には向いていない
- クラスやインターフェースをまだコードで書いた経験がない、OOP そのものの入門者(本書は構文解説ではなく設計判断を扱うため前提が高めです)
- すでに DDD やクリーンアーキテクチャを実務で運用し、値オブジェクト・エンティティ・サービスの使い分けが体に入っている上級者には、内容が基礎の再確認に寄ることがあります
- 特定言語の最新フレームワーク固有の実装テクニックを求めている人(本書は擬似コードで言語非依存に書かれており、コピペ可能なコードは目的としていません)
読了後にできるようになること
- 値オブジェクト・エンティティ・サービスオブジェクトを目的から区別し、それぞれにふさわしいクラスとして設計できるようになる
- 不変条件を守るコンストラクタとファクトリーメソッドの使い分けを、状況に応じて判断できるようになる
- 状態変更の副作用を最小化するメソッド定義の原則を、自分のコードに当てはめて適用できるようになる
- 公開スコープと不変性の設計判断を、擬似コードを足場に言語非依存で説明できるようになる
- 章ごとに整理された設計ルールを根拠として、コードレビューで指摘・議論できるようになる
ハイライト
- Java、Python、C#など、あらゆるオブジェクト指向言語に適用できるテクニックを、擬似コードを使ってわかりやすく解説します。(言語非依存で設計の本質に集中できるという本書最大の特徴を端的に示す箇所)
- オブジェクト設計のベストプラクティスを適用することで、コードの読みやすさ、書きやすさ、メンテナンス性を向上させることができます。(本書が読者に約束する成果(可読性・保守性の向上)が最も明確に表れた箇所)
編集メモ
オライリー・ジャパン刊の言語非依存な設計ルール集(約300ページ)。特定言語のトレンドに左右されにくく、実務での設計判断とチームのレビュー基準づくりに継続的に役立つ実務良書という位置づけ
読む前に押さえておきたいこと
- クラス・継承・インターフェースなど OOP の基本構文を、実際のコードで使った経験
- 実務で『このオブジェクトをどう設計すべきか』に迷った具体的な問題意識(抽象論だけでは本書の価値を活かしきれません)
- Java / Python / C# のいずれか一つで、擬似コードを自分の言語に読み替えられる程度の習熟
学習のコツ
- 本書は擬似コードで記述されているため、特定言語の文法に引っ張られず設計の本質に集中できます。読み進めながら自分の主要言語で同じルールを再実装すると、原則がコードの手触りとして定着します。
- 構成は大きく『オブジェクトをどう構築するか』から始まり、中盤で『メソッドをどう定義し状態をどう変更するか』へ、終盤で『状態をどう公開し不変条件を守るか』へと、オブジェクトのライフサイクルに沿って進みます。各テーマは独立して読めるため、いま現場で迷っているテーマ(状態管理・公開スコープなど)から拾い読みする課題駆動の読み方が効果的です。
- 約300ページと、設計原則書としては手に取りやすい分量です。通読を一度の締め切りにせず、ルール単位で区切って読み、その都度レビュー観点に落とし込むと負担なく消化できます。
- 章末や各ルールの要点は、そのままコードレビューのチェックリストに転用しやすい構造です。チーム共通の設計基準として再構成し、レビューの根拠として共有することをおすすめします。
- DDD やクリーンアーキテクチャを学んだあとに読むと、抽象的な原則と具体的な実装ルールが接続されて吸収しやすくなります。逆順でも有効ですが、上位設計を一度通ってから読むほうが各ルールの位置づけが見えやすくなります。
出版社による内容紹介
より良いオブジェクト指向のコードを書くためのルールを紹介! オブジェクト設計のベストプラクティスを適用することで、コードの読みやすさ、書きやすさ、メンテナンス性を向上させることができます。本書では、オブジェクトの種類に応じたオブジェクトの構築、メソッドの定義、状態の変更や公開など、設計ルールを説明します。Java、Python、C#など、あらゆるオブジェクト指向言語に適用できるテクニックを、擬似コードを使ってわかりやすく解説します。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。