現場で役立つシステム設計の原則
〜変更を楽で安全にするオブジェクト指向の実践技法
2017年7月5日紙版発売
2017年7月5日電子版発売
増田亨 著
A5判/320ページ
定価3,234円(本体2,940円+税10%)
ISBN 978-4-7741-9087-7
書籍の概要
この本の概要
「ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために,あっちもこっちも書きなおす必要がある」「ちょっとした変更のはずが,本来はありえない場所にまで影響して,大幅なやり直しになってしまった」といったトラブルが起こるのは,ソフトウェアの設計に問題があるから。日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者であり,システム設計のベテランである著者が,コードの具体例を示しながら,良い設計のやり方と考え方を解説します。
こんな方におすすめ
- システム設計のポイントを知りたいエンジニア
著者の一言
ソフトウェアを変更するとき,こんな経験がありませんか?
- ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでが大変だった
- 1つの修正のために,あっちもこっちも書き直す必要があった
- ちょっとした変更のはずが,本来はありえない場所にまで影響して,大幅なやり直しになってしまった
オブジェクト指向でソフトウェアを設計する目的は,こういう変更の大変さを減らすことです。どこに何が書いてあるかをわかりやすくし,変更の影響を狭い範囲に閉じ込め,安定して動作する部品を柔軟に組み合わせながらソフトウェアを構築する技法がオブジェクト指向設計です。
しかし,オブジェクト指向と聞くと「よくわからない」「今の自分の仕事には関係ない」「やってみたがうまくいかない」という人も多いようです。そうなってしまうのは,オブジェクト指向の説明が具体性に欠けていたり,例が単純すぎて現場の感覚には合わない内容が多いからです。
オブジェクト指向は理論ではありません。開発の現場で工夫されてきた設計のノウハウです。現場ですぐに役に立つ実践的なやり方と考え方です。
本書では,私が業務アプリケーションの変更に苦しんだ経験をもとに,オブジェクト指向設計のやり方と考え方,効果があった解決策を,具体的なソースコードを示しながら紹介していきます。特に「なぜそうするのか」を重視して説明します。
オブジェクト指向設計の考え方を理解し,実践で活用するポイントは2つあります。
第1のポイントは「体験」です。オブジェクト指向で設計する良さは,最初はなかなか理解できません。本書で紹介するオブジェクト指向設計のやり方を,現場の実際のコードで繰り返しているうちに,しだいにオブジェクト指向設計で変更が楽で安全になることが実感できるようになります。一度,その良さを体感できるとオブジェクト指向で設計することが当たり前になります。
第2のポイントは「発想の切り替え」です。オブジェクト指向の言語を使っているが,設計のやり方が手続き型のまま,というケースを私は何度も見てきました。特にJavaは手続き型の発想で書くこともできるプログラミング言語のため,そのようなケースが多いのが実情です。本書で紹介するオブジェクト指向らしい設計の考え方とやり方を理解し,発想を転換する手がかりにしていただければと思います。
オブジェクト指向の考え方は,要件定義や基本設計という,いわゆる上流工程でも威力を発揮します。本書では,要求分析やモデリングのやり方,アプリケーションアーキテクチャの考え方,フレームワークの活用についても,オブジェクト指向の観点から説明します。
また,業務アプリケーションではデータベース,画面インターフェース,外部システム連携も重要な設計課題です。これらについても,オブジェクトの設計と関連づけながら,変更に対応しやすい設計の考え方とやり方を説明します。
そして最後に,参考書籍を紹介しながら,オブジェクト指向設計の学び方/教え方についても取り上げます。
なお,本書のサンプルコードのプログラミング言語はJava,アプリケーションフレームワークはSpring FrameworkとSpring Bootです。ほかの言語やフレームワークを使っている方には,理解しにくい箇所があるかと思いますが,本書で説明する設計の考え方とやり方は,言語やフレームワークの違いを超えて活用できる部分があるはずです。
オブジェクト指向の開発は,分析から実装までが継ぎ目のない一貫した活動です。分析/設計/実装をうまく関係づけることで,ソフトウェアの変更を楽で安全にできるのです。ソフトウェアの変更が楽で安全になれば,開発のやり方が変わります。
みなさんが本書を手がかりに,変更が楽で安全になるオブジェクト指向らしい設計にチャレンジし,その効果を実感していただく助けになればうれしい限りです。
(本書「はじめに」より)
この書籍に関連する記事があります!
- コードの変更作業が楽で安全なものにならないのはきっと設計のせい
- 世の中には2種類のコードがあります。
この本に関連する書籍
-
ちょうぜつソフトウェア設計入門 ――PHPで理解するオブジェクト指向の活用
SoftwareDesign誌での連載と技術アドベントカレンダー24回ぶんに収まらなかった関連知識を徹底解説。いわゆる「オブジェクト指向」と呼ばれる考え方から発展した分野は...
-
事業分析・データ設計のためのモデル作成技術入門
本書は,事業分析やデータ設計のためのモデル作成技術の入門書です。本書で紹介する「TM(Theory of Models)」は,厳密な文法に則ってテーブルを細分化することにより...
-
良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方
「ITエンジニア本大賞2023」技術書部門で大賞受賞! 本書は,より成長させやすいコードの書き方と設計を学ぶ入門書です。 システム開発では,ソフトウェアの変更...
-
オブジェクト指向UIデザイン ――使いやすいソフトウェアの原理
オブジェクト指向ユーザーインターフェース(OOUI)とは,オブジェクト(もの,名詞)を起点としてUIを設計すること。タスク(やること,動詞)を起点としたUIに比べて...
-
アプリケーションアーキテクチャ設計パターン
本書は,アプリケーションアーキテクチャの基本設計フェーズにおいて「何を作るか」ではなく「どう作るか」を設計する際のガイドです。心臓部となるサーバサイドを中心...
-
オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
オブジェクト指向設計の名著として名高い“Practical Object-Oriented Design in Ruby”,待望の翻訳版!使いこなせるようになるととても便利なオブジェクト指向ですが,...
-
[改訂新版]Spring入門 ――Javaフレームワーク・より良い設計とアーキテクチャ
Javaを利用したシステム開発ではミドルウェアとしてSpring Frameworkが定番になった。バージョン4.0以降,急速に普及しているクラウド環境への対応が当たり前のものにな...
-
なぜ,あなたはJavaでオブジェクト指向開発ができないのか
Javaプログラミング言語習得において,新人プログラマーの最初の障害は「オブジェクト指向の壁」です。本書は,Javaのソフトウェア開発を中心に事業を発展させてきたア...