PHP中級者がソフトウェア開発の理解を深めるためのオススメ書籍 約30冊(2020年版)
去年末(2019/12)にオススメ書籍をまとめてみたことがあったので、それを少し更新して公開します。
上にある書籍がよりオススメというわけではないです。
対象者は「PHP中級者」です。中級者が何かは難しいですが、初心者、初級者では決してないとは言えます。
改めて一覧にしてみると、かなり偏っているかも知れません(笑
こういうのはコンテキストというのがあるため、それが合わないと「お前は何を薦めているのだ?」となるでしょうね。
キーワードは、「モデリング」「オブジェクト指向プログラミング」「TDD」「デザインパターン」「DDD」「チーム開発」「アジャイルソフトウェア開発」「スクラム」でしょうか。
PHP中級者のイメージ
たぶん、PHP中級者であれば、PHPに関することはPHPマニュアルなどを調べて解決できるでしょう。PHPのオープンソースプロジェクトに貢献しており、自分でプロジェクトを持っているかも知れません。
プログラミング、オブジェクト指向プログラミングについてもある程度、知識と経験があるでしょう。PHPしか全く読めないというようなことはなく、Java、C#、JavaScriptなど知らない言語でもなんとなく読むことくらいはできると思います。
デザインパターン、DDD、クリーンアーキテクチャーなどの用語を知っており、少しは知識があることでしょう。
プログラミング
『リーダブルコード』 より良いコードを書くためのシンプルで実践的なテクニック
割と誰にでもおすすめしやすいコードの書き方に関する良書です。
『CODE COMPLETE 第2版 上』 完全なプログラミングを目指して
『CODE COMPLETE 第2版 下』 完全なプログラミングを目指して
『Clean Coder』 プロフェッショナルプログラマへの道
『レガシーコード改善ガイド』 システム保守の現場でありがちな、構造が複雑で理解できないようなコードに対する分析手法・対処方法について解説
オブジェクト指向プログラミング
『アジャイルソフトウェア開発の奥義 第2版』 オブジェクト指向開発の神髄と匠の技
SOLID原則について詳細に解説されています。
『テスト駆動開発』 テスト駆動開発を原点から学ぶ
TDDの原典です。PHPに翻訳しつつ写経するといいでしょう。Javaのままでも構いませんが。
『リファクタリング 第2版』 既存のコードを安全に改善する
第2版はJavaScriptになり、カラーになり、圧倒的に読みやすくなりました。
『Clean Architecture』 達人に学ぶソフトウェアの構造と設計
『Clean Code』 アジャイルソフトウェア達人の技
『現場で役立つシステム設計の原則』 変更を楽で安全にするオブジェクト指向の実践技法
『ユースケース駆動開発実践ガイド』 実装部分も時流に即したオブジェクト指向分析/設計の指南書
『エンタープライズ アプリケーションアーキテクチャパターン』 エンタープライズアーキテクチャのレイヤ化とは?
デザインパターン
『オブジェクト指向における再利用のためのデザインパターン』
GoFのデザパタ本、原典です。
『増補改訂版Java言語で学ぶデザインパターン入門』 GoFの『デザインパターン』で紹介された23個のパターンを、オブジェクト指向の初心者にもわかるようにやさしく解説
『PHPによるデザインパターン入門』 デザインパターンの基本であるGoF全23パターンをわかりやすく解説
今回、唯一出てきたPHPに関する書籍です。絶版ですが。
DDD
『エリック・エヴァンスのドメイン駆動設計』
DDDの原典です。分厚く難解なため、読むのは困難です。DDDにちょっと興味があるという程度の人は以下に紹介する『ドメイン駆動設計入門』『ドメイン駆動設計 モデリング/実装ガイド』などから読むほうがいいでしょう。
『ドメイン駆動設計入門』
『ドメイン駆動設計 モデリング/実装ガイド』
https://booth.pm/ja/items/1835632
『実践ドメイン駆動設計』
IDDD本と呼ばれる書籍です。
モデリング
『業務システムのための上流工程入門』
『モデルベース要件定義テクニック』
『RDRA2.0 ハンドブック』
未読ですが、上記の『モデルベース要件定義テクニック』で使われているRDRA1.0のバージョンアップのようですので、こちらを読んだほうがよいのかも知れません。
アジャイル
『アジャイルサムライ』 達人開発者への道
『アジャイルイントロダクション』 ソフトウェア工学分野の“大御所”バートランド・メイヤー博士の手によるアジャイル入門書にして具体的な開発手法にまで言及した一冊
あの『オブジェクト指向入門』の著者であるバートランド・メイヤーがアジャイル開発について解説している本です。
『レガシーコードからの脱却』 ソフトウェアの寿命を延ばし価値を高める9つのプラクティス
どういうコードを書いたらレガシーコードにならないかというのが主な内容です。『レガシーコード改善ガイド』とは異なり、既存のレガシーコードをどうするか?が主題の本ではありません(1章だけレガシーコードのリファクタリングについて記載はありますが)。
『エクストリームプログラミング』 アジャイル開発とは何だったのか、その原点を再考する新訳
ケント・ベックによるXPの原典です。
『アジャイルな見積りと計画づくり』 価値あるソフトウェアを育てる概念と技法
アジャイルでの計画・見積もり方法について解説した書籍です。
『アジャイルレトロスペクティブズ』 強いチームを育てる「ふりかえり」の手引き
アジャイルふりかえりに関する、たぶん日本語で唯一の商業出版された書籍です。
『モブプログラミング・ベストプラクティス』 ソフトウェアの品質と生産性をチームで高める
モブプロに関する、たぶん日本語で唯一の商業出版された書籍です。『Code with the Wisdom of the Crowd』の翻訳です。
『カイゼン・ジャーニー』 たった1人からはじめて、「越境」するチームをつくるまで
この本に興味があれば、最近出た姉妹書っぽい『チーム・ジャーニー』もオススメします。
『チーム・ジャーニー』 逆境を越える、変化に強いチームをつくりあげるまで
『Team Geek』 Googleのギークたちはいかにしてチームを作るのか
スクラム
『スクラムガイド』 スクラム公式ガイド
スクラムのルールブック。これを知らずにスクラムをやってる人はルールを知らずにプレイしていることになります。
https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Japanese.pdf
『アジャイル開発とスクラム』 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント
平鍋さんと野中先生によるスクラムの概要の解説書。技術者向けというわけではないです。
『SCRUM BOOT CAMP THE BOOK』 はじめて「スクラム」をやることになったら読む本
『スクラム現場ガイド』 スクラムを始めてみたけどうまくいかない時に読む本
Date: 2020/03/23