japan.internet.comThe Internet & IT Network
Twitter
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2009年11月24日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
事業仕分けによる次世代スーパーコンピューターの開発予算削減について、どうお考えですか?
賛成
反対
どちらとも言えない
投票締切 11/30 12:00
LinuxToday2006年3月31日 13:30

PHP と MySQL を使ったコア Web アプリケーションの開発

海外海外internet.com発の記事
  • Post to Twitter
  • Post to Facebook
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • Buzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
『Core Web Application Development with PHP and MySQL』 (PHP と MySQL を使ったコア Web アプリケーションの開発)は、 Prentice Hall Core Series の新刊だ。 本書は、非常に人気の高い PHP スクリプト言語と MySQL DB エンジンを使った Web アプリケーション開発に対するアプローチの全貌を解説している。

内容としては、デザイン、セキュリティ、DB の最適化、 そして国際化などの話題が網羅されているほか、 実験用として、 実際に動作する完全なサンプル Web アプリケーションも3種類提供されている。

本書の著者で、 各種専門分野やオープンソースの分野で多様なレベルのプログラミング経験を10年以上持つ Marc Wandschneider 氏に、 インタビューを行った。

LinuxPlanet:本書の執筆は何がきっかけだったのですか。

Marc Wandschneider: ここ数年間は、さまざまな小規模企業や慈善団体向けに、 小さい Web アプリケーションや Web サイトを多数開発してきました。 私は10年以上の経験を持つ熟練プログラマではありますが、 全く新しい「プログラム」手法を学んでいると、 今でもかなり多くの苦労や失敗を経験します。 同時に、PHP が言語として信じられなほど生産性が高いことに、 大きなショックも受けました。大規模コードを素早く量産できたのです。

書籍などの情報源は定期的に探していますが、 「セキュリティの高い Web アプリケーションの設計はどうするのか?」「アプリケーションの国際化問題に対する最適な対処方法は?」「アクセス効率の高い DB はどのように設計するのか?」といった自分の疑問に対し、 納得できる回答が見つかりません。 また、C/C++、Java、そして .NET などの経験が大半の私は、 理解するのに注意が必要で、 時間のかかる新しい環境を学ぶにあたり、 再三にわたって多数の失敗を犯していたのです。

多数の Web アプリケーションを書き、 以前から抱えていた疑問に対する回答をゆっくりと学んだ私は、 ゆっくり腰を落ち着け、自分の経験を本にすることにしたのです。 PHP や MySQL、 そしてセッションやクッキーなど関連技術のような多数の話題に対する単なる訓練的な内容にするのではなく、 開発者の疑問に答え、 堅牢な Web アプリケーション開発プロセスの問題を解決するような内容にすることを心がけました。

LP:同じような題材の本は山ほどあります。本書はどこが違うのですか。

Wandschneider: 現在、PHP 関連書は優れたものが多数販売されていますが、 その多くで1つだけ欠けていると思われるのが、 Web アプリケーションの開発で重要な問題に対するシステム的なアプローチです。 章の1つを割いて、 サイトの適切な保護に必要な「要チェック項目」を一覧するだけの形で、 セキュリティを扱う書籍が多かったり、 文字列を扱っていながら、 外国語を扱う人の問題にはあまり言及しないといった状況です。

『Core Web Application Development with PHP and MySQL』では、 セッション、XML、 あるいはファイルのアップロードといった特定の技術の扱い方だけでなく、 アプリケーションのほかの部分とどのように連携するのか、 ほかの機能とどのようにやりとりするのか、 安全かつ効率的に利用するにはどうするのか、なども解説しています。

私が釈然としなかったもう1つの大きな問題が、 プロセスの重要な部分が欠けた電子商取引アプリケーションや、 本を購入しても開発に役立たないサンプルなど、 不自然に思える例でした。

この問題を解決するため、 私は完全なサンプルを3種類開発しました。 予定管理システム、 Blog エンジン、 そしてポスター販売店用の電子商取引システムです。

完全なコードを CD-ROM に収めたので(さらに著者の Web サイトからアップデートも提供される)、 完全に動作する便利な Web アプリケーションを実際にいろいろ試し、 デバッグを体験し、 さまざまな機能を見つけ出すことができます。

LP:本書とほかの書籍の違いはどこだと思いますか。

Wandschneider: 本書は、サンプルや、 効率的な Web アプリケーション開発の重要なトピックに対するシステム的なアプローチに加え、 PHP 言語に隠されたトリックや落とし穴も多数紹介しています。 私はあらゆる種類の失敗を犯すような人間なので、 くだらない経験が多数あります。 本書では、読者が同じ失敗を犯さないことを願って、それを多数紹介しました。

私は、物事の仕組みや、そうなる理由を理解するのも好きです。 物知り顔で詳細に踏み込み、身動きがとれなくなるのではなく、 自分の経験から話題や技術を評価し、説明するようにしました。 時間がたつと、 PHP のファンクションコールや SQL 文を正確に思い出せなくなるかもしれませんが、 本書に重要な内容があるので見直してみようと思ってもらえるでしょう。

LP:なぜほかの書籍はこれらの話題を軽視しているのだと思いますか。

Wandschneider: 実際は、ほかの書籍も大半はこれらの話題を扱っていると思いますが、 チュートリアルをすし詰めにした印象で、 内容が整理されていない場合が大半です。 セキュリティに関する章の内容が、 Web サーバーや php.ini のチェック項目を列挙するだけでは、 問題に適切に対処できませんし、 (必然である)ミスのあらゆる発生例を示さないのでは、 プログラミングを解説することはできません。

LP:なぜ MySQL なのですか。

Wandschneider: 実際のところ、本書を執筆した目的は MySQL だけではありませんでした。 確かに私はこの DB を最も頻繁に利用していますが (その理由は単純で、最初に学習したものだからですが)、 本書のコンセプトはこのパッケージだけに当てはまるわけではありません。

当初、本書では DB サーバーを限定したくなかったのですが、 書き進めるうちに、それが不可能であることに気付きました。 そこで、MySQL に重点を置き、 ほかの DBMS ユーザーにはできるだけヒントやコツを提供することにしたのです(付録 II の「Database Function Equivalents (対応 DB機能)」など)。

本書では、 ユーザーはほかのサーバーで Web アプリケーションを開発できない、 ということはありません。

LP:ここで経歴についてお聞かせ下さい。

Wandschneider: 私は、カナダのマギル大学でコンピューターサイエンスの学士号を取得した後、 1990年代半ばに Microsoft に就職するため米国に移住しました。 そこでは、ほとんどの時間を Visual Basic と、 その関連コンポーネント技術の開発に費やしました。 同社では最終的に、 .NET プラットフォームの WinForms チームでマネジャーを務めました。 その後、仕事や同社の方向性に徐々に満足できなくなり、 1998年に転職を決意しました。

おもしろいことに、 Microsoft に入社したころは、 DB 関連の仕事にストレスがたまり、イライラしていました。 しかしその後、MySQL を使い始めたときに、 そのおもしろさが本当に分かるようになっていったのです。

ここ最近の6年間は世界中を転々とし、 ソフトウェア開発のさまざまな問題に関連して企業を支援し、 時間があると OSS を書いていました。 イタリア、ドイツ、そして日本など、さまざまな国で生活し、 1か国語にしか対応しない Web アプリケーションが、 ユーザーにとってどれだけ問題になるのかも目の当たりにしました。

LP: Microsoft ですって? 名前を出したらオープンソースコミュニティでのあなたの信頼に傷が付きませんか。

Wandschneider: 私が Microsoft で働いたことがあると聞いた人のなかには、 赤ちゃんを食べるのが趣味なのではないか、などと思う人もいました。 しかしそれでも、Microsoft ではかなり貴重な経験を得ることができ、 有意義な仕事ができたと断言できます。 1990年代当時は、まだ同社もかなり面白い職場で、 堅牢なプログラミングと、 効果的なソフトウェアを完璧にテストして出荷することに関して、 数え切れないほど多くのことを学びました。

Web アプリケーション開発の分野に携わるようになってからも、 これらの優れた習慣は持ち続けるようにしています。 ソフトウェアがうまく書かれていれば、 だれもが恩恵を受けられますし、 もっとオープンソースに貢献したいと考えています。

LP:本書を執筆するのにどれくらい時間がかかりましたか。

Wandschneider: 本書は、近所のコーヒーショップに出かけて書き始めました。 6か月かけ、 Lサイズのエスプレッソを何杯も飲んだ末に最初の草稿が仕上がり、 入稿となりました(編集にはその後数か月を要しました)。 当時は働いていなかったため、 基本的に、1週間に40〜50時間を執筆にあてることができました。 特定の章のために数日かけてコードやサンプルを書くと、 それから書く内容について戦略を練り、 あとはそれをきれいにタイプするだけでした。

LP:本書の執筆は楽しめましたか?

Wandschneider: 特定のコンセプトや技術を、 本当にその仕組みが理解できるよう説明するのは、 最高に面白い作業です。 私は、小さいスクリプトやサンプルを書くことに多くの時間を費やし、 場合によっては悩むこともありましたが、 これまで知らなかった全く新しく興味深いことを学ぶときもありました。 これはちょっと話すのは恥ずかしいのですが、 それがしばらく続くと、SQL や PHP で夢を見始めるようになります。

LP:本書の読者はどのようなことを期待できるのでしょうか。

Wandschneider: 本書は「何らかのプログラム経験のある」方を対象にしています。 それ以上のことは求めていません。 VB スクリプトやプログラムを多数書いた経験がある、 Perl をしばらく書いていた、 あるいは実際に大規模アプリケーションを Java や C/C++ で書いたことがあれば、 本書は読みやすいようになっています。

Web アプリケーションを書き始めるまで、 私には DB に関する知識がないに等しかったため、 読者にも同じように経験がないものと仮定しています。 この点を考慮に入れ、本書は PHP や SQL のシンタックスだけでなく、 読者がこれから遭遇するであろう問題や、 これらを自分のアプリケーションのなかで最大限効果的に使う方法を解説していきます。

LP:本書の読者はどのプラットフォームを使えば良いと思いますか?

Wandschneider: 読者が何を使おうと全く自由です。 私自身も、書いている内容が絶対に限定されないよう、 Windows、Linux、FreeBSD、そして Mac OS X でサンプルを開発、 テスト、および実行しています。 PHP も PHP 5.0〜5.0.4 までのバージョンを使ったほか、 MySQL は 4.1.7 以降の各バージョンを使いました(最新の 5.0 リリースも含む)。

私は先ごろ、商用の PHP/MySQL Web アプリケーションの開発に携わりました。 開発は Windows、Mac OS X、そして各種 Linux サーバーで行われました。 よほどのことがない限り、 各バージョンがどのプラットフォームで動作しているか気付きませんでした。

LP: 最も興奮を感じる PHP5 の主要機能は何でしょうか?  MySQL ではどうでしょう。

Wandschneider: PHP 5 へのオブジェクト指向機能の追加は大歓迎です。 アプリケーションの設計に大きく役立ち、コードもきれいに整理できます。 徹底的なシンタックスチェックも、変数の未定義エラーや、 自分が書いたもののなかに隠れていた多数のコード関連問題の回避に役立つことが分かりました。加えて新しい MySQLi(Improved MySQL)拡張もあり、 PHP 5を使ったプログラミングには大満足です。

MySQL は、非常に興味深く、 堅牢な DB システムへと成長しました。 バージョン 4.1.7 以降では Unicode のサポートが大幅に改善され、 これにより、ユーザーがどの言語でデータを送信しても全く意に介さないアプリケーションの開発が可能になりました。 DB は、これらをすべて UTF-8 文字列として保存し、 アプリケーションがこれらのデータをクライアントに運びます。 多種多様なデータタイプに対応し、MyISAM と InnoDB のいずれかのテーブルを選択できると、 このサーバーを完全にコントロール下に置いている感覚になります。

LP:本書で分からないことがあったら、読者はどうすればいいでしょう。

Wandschneider: ここに私の Blog があります。本書に関する最新情報やメモだけでなく、 開発者に有益だと思われるチュートリアルや各種情報も用意されています。

まとめ

『Core Web Application Development with PHP and MySQL』は、 以下の5つの章で構成されている。

・ learning PHP(PHP の学習)
・ learning Databases (DB の学習)
・ designing your web applications (Web アプリケーションの開発)
・ implementing your web applications (Web アプリケーションのインプリメンテーション)
・ complete web application samples (完全版サンプル Web アプリケーション)

読者はその習熟度にかかわらず、これらの話題を読み進め、 デザインやセキュリティに対してシステム的なアプローチを取ることで、 本書が Web アプリケーションを書くときの有益なツールになるだろう。 かなりの詳細に踏み込み、 しかも軽妙な文体で仕組みを完全に説明している。 このような本を手元に置いて作業すれば、 みんな満足できるだろう。

書籍情報

書名:Core Web Application Development with PHP and MySQL (Core) (ペーパーバック)
著者:Marc Wandschneider 氏
発行者:Prentice Hall PTR; Bk&CD-ROM エディション(2005年9月26日)
ISBN:0131867164
価格:49ドル99セント
  • プリンター用
  • 記事を転送
  • Post to Twitter
  • Post to Facebook
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • BuzzurlにブックマークBuzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
最新トップニュース
Graphic Design Forum
【Graphic Design Forum】
流動的媒体と静的媒体に関する見解(11月18日)
スマートにソーシャルウェブを構築しよう
スマートにソーシャルウェブを構築しよう
オバマ大統領も絶賛。メイヨークリニックのソーシャルメディアポリシー(11月24日)
アイレップの SEM フロンティア
アイレップの SEM フロンティア
検索技術の進化で広がる SEO 領域―2010年以降に要求される事は?(11月24日)
百式のネットビジネス研究
百式のネットビジネス研究
外国で見かけた標識を写真に撮ると翻訳してくれる iPhone アプリ「PicTranslator」(11月24日)
DevX
DevX
HTML 5のフォーム要素(11月24日)
エンジニア転職ノウハウ開発室
エンジニア転職ノウハウ開発室
エンジニア的「合わない」と思う瞬間/理系の人々(11月24日)
「IT の耳」
「IT の耳」
【書評】『Hyper-V スタートアップバイブル』――仮想化についてのすぐれた解説書(11月20日)
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(11月19日)
海外ソーシャルウェブに学ぶ成功の秘訣
海外ソーシャルウェブに学ぶ成功の秘訣
ゲーム業界を襲う世界的な激震。ソーシャルゲーム急成長のインパクト(11月19日)
今さら聞けない初歩からのアクセス解析
今さら聞けない初歩からのアクセス解析
サイトリニューアル前のアクセス解析活用法(11月19日)
成約率、反応率を上げる Web 文章術
成約率、反応率を上げる Web 文章術
文章力を磨き、キャッシュを生み出す Web サイト に(11月19日)
Copyright 2009 Japan Internet.com K.K. All Rights Reserved.http://www.internet.com/