本格入門シリーズPHP本格入門[下]
~オブジェクト指向設計、セキュリティ、現場で使える実践ノウハウまで

この本の概要

Webアプリケーションの定番言語であるPHPの基礎から実践までを,上下巻のフルボリュームで集大成。

「この目的を実現するためには,どの文法テクニックが適合しやすいだろう?」
「このプログラムをより読みやすくするために,どんなアプローチができるだろう?」

といったことを思考しつつ,「とりあえずは動く」だけで終わらない,現場に求められる品質を形にするための知識とテクニックを解説します。

こんな方におすすめ

  • プログラミング入門,PHPの超入門レベルの知識はあるが,実践レベルの知識がないプログラマ

著者の一言

PHPは,動的なWebページ(Webアプリケーション)を実現するために使われるプログラム言語です。自由度の高さと習得のしやすさに定評があり,今でも高い人気を維持し続けています。そして,自由度の高さが,ときとして裏目に出ることもあります。

著者は,自身の20年来のプログラマーとしての経歴の中で,大小含めて50を超えるPHPプロジェクトの開発に携わってきました。トラブルプロジェクトの調査役や火消し役としてあとから参加したプロジェクトもありますが,その中のいくつかは,ゼロからの作り直しを余儀なくされたこともありました。その原因は以下のようなものでした。

  • 潜在的に品質が悪く,多くのバグフィックスを入れても安定稼働にいたらなかった
  • 離脱したチームメンバーが書いたプログラムが複雑怪奇で,だれも手を入れることができなくなった

なぜそのようなことになったのかをソースコードから突き詰めていくと,PHPの持つ自由度の高さへの,甘えのようなものが本質にあったのではないかと思います。

PHPは,凝ったプログラム設計をせず,実直にプログラミングしても,とりあえずは動いてくれます。そのような「とりあえずは動く」状態に持っていくだけであれば,それほど多くの習得時間を必要としません。一方で,そのようなPHPの寛容さが,チーム開発になると裏目に出てきます。チームメンバーがひとりよがりな流儀でプログラミングをした結果,それぞれの機能を書いた本人にしか読解できない,複雑怪奇なアプリケーションに仕上がりがちなのです。

このようなPHP開発にありがちな状況をふまえ,著者は

  • よいPHPアプリケーションの「あるべき姿」
  • あるべき姿に近づくための,アプリケーション設計ポリシー

を共通理解としてもつことが,今のPHP習得者にはとりわけ重要であると考えました。そして,本書ではこの考えのもと,以下のような内容も積極的に取り入れることにしました。

  • 目的の理解……その文法要素が使われやすい用途
  • 読みやすさ……コーディング規約/読みやすいプログラミング作法
  • 変更へのしなやかさ……独立性の高いオブジェクト指向設計
  • 品質の見える化……プロファイリング/デバッグ手法
  • 安心感を維持する仕組み作り……自動テスト/リファクタリング手法

本書は,理路整然と文法テクニックが並べられただけの入門書ではありません。

「この目的を実現するためには,どの文法テクニックが適合しやすいだろう?」
「このプログラムをより読みやすくするために,どんなアプローチができるだろう?」

といったことを思考しながら進めていきます。

これらのことは,手練のプロでも日常的に思い悩むことです。なぜなら,1つの目的を実現するためのアプローチが3~4パターンあることは普通で,明確な答えがないことも多いからです。だからこそ,PHP習得の早い段階で,こういった思考のトレーニングを積んでおくことが肝要なのです。そして,その思考の時間は楽しいものです。

本書をとおして,あたかもPHP開発プロジェクトの現場にいるような気分で,思考するプロセスの楽しさを味わっていただければ幸いです。

著者プロフィール

大家正登(おおいえまさと)

1979年,佐賀県生まれ。20歳よりフリープログラマーの下でプログラミングやサーバー管理の実務を,21歳より大学の研究室でPerl言語を使った自然言語処理を学ぶ。東京外国語大学外国語学部欧米第二課程スペイン語専攻卒業後,2003年より,株式会社ワイ・ディ・シー中部支社にてJava,PHP,Cなどによる生産管理システムの開発に従事する。2006年より,フリープログラマーとして独立。2008年,デジタルハリウッド横浜校「PHP講座」講師。2009年より現在まで,東京IT株式会社代表取締役。
おもな執筆歴として,『PHP逆引き大全516の極意』『たったコレだけでPHPプログラミングが理解できる本』『たったコレだけでJavaプログラミングが理解できる本』(以上,秀和システム),「プログラミング未経験から始めるPHP入門」(翔泳社CodeZine・全15回)がある。現在の夢は,幼児・小学生~大学生まで幅広く,プログラミングの楽しさを体験してもらう場を世に広めること。