Dyno

Modernizing Legacy Applications in PHP

Paul M. Jones

構成が一昔前のものであったり長年使われていてメンテナンス性が悪かったりする PHP アプリケーション――「レガシーアプリケーション」を改善する方法を解説した書籍です。

古い構成で作られた既存の PHP アプリケーションを徐々にメンテナンス性の高いモダンな形に作り変えていく方法を紹介しています。

英語圏では、「ゼロから始められる新しいプロジェクト」を「 greenfield projects 」、「既存のシステムの改修プロジェクト」を「 brownfield projects 」と呼ぶことがあります。 一般に、 greenfield projects は開発者にとって簡単でおもしろく、 brownfield projects は困難でおもしろみに欠けます。 開発者の負担や苦痛が多いのはもちろん後者の brownfield projects です。

しかし、事実として(ソフトウェア資産をうまく積み上げられている健全な会社では特に)開発者がメインで取り組むべきはたいてい brownfield projects の方です。

「 PHP は言語仕様もよくないし、レガシーなシステムが多いし」ということで PHP を避ける開発者は多いですが、 1990 〜 2000 年代に隆盛を誇った PHP の現実として、 PHP で作られたレガシーなシステムが世の中にはたくさんあります。 そのため「レガシーな PHP システムを改善できるスキル」には大きな価値があります。 本書はまさに読者がそのスキルを高められるように書かれた書籍です。

本書には一見見ただけで投げ出したくなるような「超レガシー」な PHP アプリケーションを一歩一歩着実に改善していくさまが描かれているのですが、その様子は同じ PHP プログラマとして見ていてなんだか感動するものがあります。

紹介されている個別のテクニックが役に立つのはもちろん、「腕と意欲さえあればプログラマはどれだけレガシーなコードにも立ち向かえるんだな」とポジティブな気持ちにさせてくれるという意味でも良書だと思います。

まさにタイトルのとおり「レガシー」な PHP システム・ PHP サイトと向き合う必要がある人におすすめな書籍です。