ちょうぜつソフトウェア設計入門ーー PHP で理解するオブジェクト指向の活用

チョウゼツソフトウェアセッケイニュウモンーーピーエイチピーデリカイスルオブジェクトシコウノカツヨウ

ちょうぜつソフトウェア設計入門ーー PHP で理解するオブジェクト指向の活用の表紙
プログラミング
著者:
田中 ひさてる(タナカ ヒサテル)
出版社:
技術評論社
出版日:
2022年12月10日
ISBN:
9784297132347
在庫:
在庫あり
4.4(6 件 / 楽天ブックス)
中級者向け
PHPプログラミングデザインパターンソフトウェアアーキテクチャクリーンアーキテクチャTDDアジャイルオブジェクト指向UMLSOLID

なぜ注目されているか

総合1759位 ↓ 1 ランクダウン

書籍紹介

SoftwareDesign 誌での連載と技術アドベントカレンダー 24 回ぶんに収まらなかった関連知識を徹底解説。いわゆる「オブジェクト指向」と呼ばれる考え方から発展した分野は、どのようにソフトウェア設計の役に立つのかを、よく知られた原則、テスト駆動開発、デザインパターンなどを通じて理解できる一冊です。上級者には定番の知識を体系的に整理するヒントとして、初級者には可愛いイラストで覚えるキーワード集として、幅広く活用していくことができます。なお、サンプルコードは PHP で書かれていますが、他の言語に置き換えて読めるコードばかりです。PHP を使っているかどうかを問わず、全ての開発者にオススメです。
第 1 章 クリーンアーキテクチャ

第 2 章 パッケージ原則

第 3 章 オブジェクト指向

第 4 章 UML (統一モデリング言語)

第 5 章 オブジェクト指向原則 SOLID

第 6 章 テスト駆動開発

第 7 章 依存性注入

第 8 章 デザインパターン

第 9 章 アジャイル開発

技書の森解説

設計原則を説く本は数多くありますが、クリーンアーキテクチャ、SOLID、依存性注入、デザインパターンといった個々の原則がどうつながっているのかを 1 冊で見渡せる本は限られます。『ちょうぜつソフトウェア設計入門 PHP で理解するオブジェクト指向の活用』 (田中ひさてる 著、技術評論社、2022 年 12 月刊、A5 判) は、版元の概要によれば SoftwareDesign 誌での連載と技術アドベントカレンダー 24 回ぶんに収まらなかった関連知識を徹底解説した本で、いわゆる「オブジェクト指向」と呼ばれる考え方から発展した分野がどのように ソフトウェア設計 の役に立つのかを、よく知られた原則、テスト駆動開発、デザインパターンなどを通じて理解できる一冊と位置づけられています。サンプルコードは PHP で書かれていますが、版元は他の言語に置き換えて読めるコードばかりだとして、PHP を使っているかどうかを問わず全ての開発者に薦めています。

全 9 章の構成、クリーンアーキテクチャから始まりアジャイル開発で閉じる

構成は全 9 章で、章題は第 1 章 クリーンアーキテクチャ、第 2 章 パッケージ原則、第 3 章 オブジェクト指向、第 4 章 UML (統一モデリング言語)、第 5 章 オブジェクト指向原則 SOLID、第 6 章 テスト駆動開発、第 7 章 依存性注入、第 8 章 デザインパターン、第 9 章 アジャイル開発です。目を引くのはこの順序で、多くの設計入門書がクラスとオブジェクトの説明から始めて最後にアーキテクチャへ至るのに対し、本書は最初にクリーンアーキテクチャとパッケージ原則という全体の構造の話を置き、そのあとでオブジェクト指向、UML、SOLID という個々の部品の設計へ降りていきます。第 6 章以降はテスト駆動開発、依存性注入、デザインパターンと、原則を実際のコードへ落とし込む手段が続き、最後の章がアジャイル開発で閉じる配置は、設計を一度で完成させるものではなく変化に応じて育てるものとして扱う姿勢を示していると読めます。版元は、上級者には定番の知識を体系的に整理するヒントとして、初級者には可愛いイラストで覚えるキーワード集として活用できると案内しており、章題に並ぶ語がそのまま設計の基本語彙になっています。

設計原則はなぜ単独では身につかないか、依存の向きという共通の軸

SOLID の各原則、依存性注入、クリーンアーキテクチャ、デザインパターンは、それぞれ別の本や記事で別々の概念として学ばれがちです。しかし実務でこれらが効くのは、共通する 1 本の軸を握ったときで、その軸は「依存の向きを制御する」ことにあります。SOLID 原則 の依存性逆転は、具体的な実装ではなく抽象に依存させるという原則であり、依存性注入はその原則をコードで実現するための手段です。クリーンアーキテクチャは同じ考えをシステム全体へ広げ、依存を内側のビジネスルールへ向けて外側の技術的詳細から切り離す構造であり、パッケージ原則はモジュール同士の依存をどの方向に流すべきかの指針、テスト駆動開発はテストしやすさという要求を通じてこれらの分離を日々のコードに強制する実践、デザインパターンは繰り返し現れる依存の組み替えに名前を付けたカタログです。単独で学ぶと暗記になりがちなこれらを 1 冊の中で並べて読めば、点として知っていた原則が線でつながり、レビューで「なぜこの分け方が良いのか」を言葉で説明できるようになります。PHP はクラスとインタフェースを備えた言語なので、こうした原則をそのままコードの形で示すことができ、版元が他の言語へ置き換えて読めると言うのも、示されるのが言語固有の技法ではなく依存の設計そのものだからだと考えられます。

PHP 以外の開発者にも向く前提と、向かない読み方

版元が対象として挙げるのは、ソフトウェア開発にかかわるすべてのエンジニア、PHP プログラマ、Web プログラマ、アーキテクトなどです。サンプルを他の言語に置き換えて読む前提なので、何らかのオブジェクト指向言語でクラスを書いた経験があると読み進めやすく、逆に PHP の文法そのものを学ぶ言語入門ではありません。著者の田中ひさてる氏は、版元プロフィールによれば漫画家と言われることもあるが本職はプログラマーで、株式会社ことば研究所にて事業委託の形でほぼ専属として 10 年以上続く Web サービス事業の維持と拡張開発に携わり、社外の IT エンジニアコミュニティ、とくに PHP コミュニティによく参加している人物です (刊行時点の記載)。章題に特定のフレームワーク名は無く、主題は言語やフレームワークに依存しない原則の側にあるため、特定のフレームワーク上での実装手順やディレクトリ構成の正解を求める人には目的が合いません。また版元が初級者向けの使い方として挙げるのはキーワード集としての活用であり、設計の言葉を初めて聞く段階の人は、まず語彙を拾う読み方から入るのが現実的です。

原則の名前は知っているのに、自分のコードのどこに適用すべきか、なぜその分け方が良いのかを説明できない。そう感じている中堅の開発者にとって、本書はばらばらだった知識を依存の向きという 1 本の軸に束ね直す助けになり、設計レビューやチーム内で設計の語彙を揃える場面でその効果が回収できます。設計 / アーキテクチャ本の選び方 の中では、コードの書き方からシステム構造までを 1 冊で見渡す入り口に当たる本で、PHP を使っていない人も含めて、原則同士のつながりを一度整理しておきたい開発者に向いた一冊です。

この本は技書デッキのカードです (攻撃 14 / 備え 2) 図鑑でこの本を見る

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: