アジャイルソフトウェア開発の奥義第 2 版(アジャイル ソフトウェア カイハツ ノ オウギ)
オブジェクト指向開発の神髄と匠の技
ソフトウェア工学・設計- 著者:
- ロバート・C.マーティン/ジェームス・ニューカーク(マーティン,ロバート・C./ニューカーク,ジェームス)
- 出版社:
- SBクリエイティブ
- 出版日:
- 2008年07月
- ISBN:
- 9784797347784
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
ソフトウェア開発の原則・デザインパターン・プラクティス完全統合。すべての悩めるプログラマのための処方箋。 Software Development 誌 Jolt Award 受賞作。
技書の森解説
オブジェクト指向設計の「なぜこう設計するのか」を、原則とデザインパターンと開発プラクティスの三つ巴で叩き込む。『アジャイルソフトウェア開発の奥義 第 2 版 オブジェクト指向開発の神髄と匠の技』 (ロバート・ C ・マーティン ほか著、瀬谷啓介 訳、 SB クリエイティブ、 2008 年刊、 683 ページ) は、その狙いで書かれた ソフトウェア設計の古典 です。著者は「クリーンコード」「クリーンアーキテクチャ」の一連の著作で知られるロバート・ C ・マーティン。本書はその設計思想の源流にあたる大著で、 Software Development 誌の Jolt Award を受賞しています。
ケーススタディ中心の 5 部構成
本書の構成が独特なのは、理論の解説に留まらず、実際のシステムを設計しながら原則とパターンを適用していく点です。版元の目次によれば、第 1 部でアジャイル開発、第 2 部でアジャイル設計の考え方を据えた後、第 3 〜 4 部で「給与システム」、第 5 部で「気象観測所」という 2 つのケーススタディを通して、要求から設計・実装・パッケージングまでを一貫して追います。設計原則を暗記させるのではなく、変更に直面したときにその原則がどう効くかを、動く題材で体感させる作りです。マーティンの後年の著作が原則を凝縮して語るのに対し、本書はその原則が生まれる思考過程を長い紙面でじっくり見せてくれます。
原則・パターン・プラクティスの統合
683 ページという分量 は、原則・パターン・プラクティスという本来別々に語られる 3 領域を 1 冊に統合した結果です。デザインパターンを「カタログの暗記」ではなく「設計原則を守るための手段」として位置づけ直す視点は、パターン本を読んだのに使いどころが分からない、という段階の読者に効きます。コード例は当時の言語 (C++/Java 系) で書かれていますが、扱っているのが言語に依存しない設計の原理であるため、現代のオブジェクト指向言語の開発者がそのまま読み替えられます。
向いている読者と古さの扱い
向いているのは、動くコードは書けるが設計の良し悪しを言語化できない中級エンジニア、そしてマーティンの『 Clean Architecture 』などを読んで源流をたどりたい人です。刊行は 2008 年と古く、扱うプラクティスにはその後 CI/CD 環境の進化で様変わりした部分もありますが、オブジェクト指向設計の原則という核は時代を越えて通用します。分厚さと古さを理由に敬遠されがちですが、設計判断の土台をケーススタディで体に叩き込みたい人にとって、いまも読む価値の減らない一冊です。
言及 Qiita 記事 (32 件)
新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。
♡ 3163技術書エンジニアに読んで欲しい技術書90選
♡ 1962技術書, 書籍, 新人プログラマ応援「オブジェクト指向とは、現実世界を正しく捉えること」という理解はデメリットのほうが大きい
♡ 317オブジェクト指向, ポエム, 新人プログラマ応援DDD関連書籍メモ
♡ 134Java, DDD, ドメイン駆動設計オレオレ技術書ロードマップ(ゲームプログラマ編)
♡ 78ゲーム, 技術書, 書籍, ゲームプログラミングSwift: Stateパターンでお気に入りボタンの制御
♡ 46iOS, オブジェクト指向, DesignPatterns, Swift, statemachineYYPHP#84「良いって聞くけどLaravelって実際どうなの?」「俺のチームのGitワークフローのレビューをしてくれ!」「外部キー制約の話をしよう」「DDDやデザインパターンを学ぶのにオススメの書籍」「LinkedIn Learningが意外と良さそうな動画学習コンテンツがありそうな件」「PhpStormのプラグインdeep-assoc-completionが便利すぎる件」「最近のWindowsが良さそう」
♡ 45PHP, Git, MySQL, Laravel, YYPHPYYPHP#86「単体テストをやっていきたい」「コントローラの重複した処理をどうまとめたらいいか」「フレームワークを使うにはPHPの基礎が分かっている必要がありますか」「オブジェクト指向を知りたいですか」
♡ 38CakePHP, PHPUnit, オブジェクト指向, Laravel, YYPHPSymfonyの学びかた (2014/04/19 講演資料)
♡ 35PHP, Symfony, Symfony2未経験者が入社1カ月間で必死に読んだ課題図書6冊
♡ 17Ruby, Rails, デザインパターン, 未経験エンジニア
この本に興味がある方におすすめ
この本に関連
関連記事
Web デザイン本ガイド - HTML/CSS、Figma、Photoshop を学ぶ順番
Web デザインを独学する本の選び方を「コーディング、ツール、デザイン原則」の 3 本柱で整理。HTML/CSS の入門書、Figma と Photoshop の教本、レイアウトと配色の定番書を、2026 年 8 月時点の収載書から学ぶ順番つきで解説します。
設計の引き出しは経験だけでは増えない
実務経験だけでは設計の引き出しに限界があります。なぜ経験だけでは不十分なのか、本が設計力に対して果たす、他で代えにくい役割を論じます。
あの有名 OSS のコードは、この本の影響を受けている
広く使われているオープンソースソフトウェアの設計には、技術書と共通の語彙や原則が残っています。OSS のコードから辿れる影響と、似ているだけの例の見分け方を整理しました。
関連用語
デザインパターン
ソフトウェア設計で繰り返し現れる問題に対する再利用可能な解決策のカタログ
Builder パターン
複雑なオブジェクトの生成をメソッドチェーンで段階的に構築するデザインパターン
Flyweight パターン
多数のオブジェクト間で共有可能な状態を分離し、メモリ使用量を削減するデザインパターン
Command パターン
操作をオブジェクトとしてカプセル化し、実行の遅延、キューイング、取り消しを可能にするデザインパターン
State パターン
オブジェクトの内部状態に応じて振る舞いを切り替え、状態遷移を明示的にモデル化するデザインパターン
S3 ライフサイクル
S3 オブジェクトのストレージクラスを自動的に移行し、コストを最適化する機能