Publishing技術評論社の電子書籍サイトログインカート本サイトではJavaScriptを使用しております。JavaScriptが無効な状態ではご利用いただけません。本書は,2017年7月5日に発売された書籍の電子版です。EPUB:リフローリストツイート概要こちらの電子書籍版では、現在サポートページにて公開している正誤表部分は修正済みです。紙版については次回重版時に修正予定になっております。「ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために,あっちもこっちも書きなおす必要がある」「ちょっとした変更のはずが,本来はありえない場所にまで影響して,大幅なやり直しになってしまった」といったトラブルが起こるのは,ソフトウェアの設計に問題があるから。日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者であり,システム設計のベテランである著者が,コードの具体例を示しながら,良い設計のやり方と考え方を解説します。こんな方におすすめシステム設計のポイントを知りたいエンジニア著者から一言ソフトウェアを変更するとき,こんな経験がありませんか?ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでが大変だった1つの修正のために,あっちもこっちも書き直す必要があったちょっとした変更のはずが,本来はありえない場所にまで影響して,大幅なやり直しになってしまったオブジェクト指向でソフトウェアを設計する目的は,こういう変更の大変さを減らすことです。どこに何が書いてあるかをわかりやすくし,変更の影響を狭い範囲に閉じ込め,安定して動作する部品を柔軟に組み合わせながらソフトウェアを構築する技法がオブジェクト指向設計です。オブジェクト指向と聞くと「よくわからない」「今の自分の仕事には関係ない」「やってみたがうまくいかない」という人も多いようです。なってしまうのは,オブジェクト指向の説明が具体性に欠けていたり,例が単純すぎて現場の感覚には合わない内容が多いからです。オブジェクト指向は理論ではありません。開発の現場で工夫されてきた設計のノウハウです。現場ですぐに役に立つ実践的なやり方と考え方です。本書では,私が業務アプリケーションの変更に苦しんだ経験をもとに,オブジェクト指向設計のやり方と考え方,効果があった解決策を,具体的なソースコードを示しながら紹介していきます。「なぜそうするのか」を重視して説明します。オブジェクト指向設計の考え方を理解し,実践で活用するポイントは2つあります。第1のポイントは「体験」です。オブジェクト指向で設計する良さは,最初はなかなか理解できません。本書で紹介するオブジェクト指向設計のやり方を,現場の実際のコードで繰り返しているうちに,しだいにオブジェクト指向設計で変更が楽で安全になることが実感できるようになります。一度,その良さを体感できるとオブジェクト指向で設計することが当たり前になります。第2のポイントは「発想の切り替え」です。オブジェクト指向の言語を使っているが,設計のやり方が手続き型のまま,というケースを私は何度も見てきました。Javaは手続き型の発想で書くこともできるプログラミング言語のため,そのようなケースが多いのが実情です。本書で紹介するオブジェクト指向らしい設計の考え方とやり方を理解し,発想を転換する手がかりにしていただければと思います。オブジェクト指向の考え方は,要件定義や基本設計という,いわゆる上流工程でも威力を発揮します。本書では,要求分析やモデリングのやり方,アプリケーションアーキテクチャの考え方,フレームワークの活用についても,オブジェクト指向の観点から説明します。業務アプリケーションではデータベース,画面インターフェース,外部システム連携も重要な設計課題です。これらについても,オブジェクトの設計と関連づけながら,変更に対応しやすい設計の考え方とやり方を説明します。最後に,参考書籍を紹介しながら,オブジェクト指向設計の学び方/教え方についても取り上げます。ほかの言語やフレームワークを使っている方には,理解しにくい箇所があるかと思いますが,本書で説明する設計の考え方とやり方は,言語やフレームワークの違いを超えて活用できる部分があるはずです。オブジェクト指向の開発は,分析から実装までが継ぎ目のない一貫した活動です。分析/設計/実装をうまく関係づけることで,ソフトウェアの変更を楽で安全にできるのです。ソフトウェアの変更が楽で安全になれば,開発のやり方が変わります。みなさんが本書を手がかりに,変更が楽で安全になるオブジェクト指向らしい設計にチャレンジし,その効果を実感していただく助けになればうれしい限りです。