株式会社技術評論社 様のご厚意により,
書籍 "WebエンジニアのためのApacheモジュール プログラミングガイド" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
技術評論社様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
全体を通していい意味でシンプルな内容であり表現も簡潔で, 非常に読みやすかった. 本書には Apache モジュールプログラミングの為の驚くような秘密やテクニックが記載されている訳ではない. おそらくマニュアルやサンプルを丹念に追っていけば本書で説明されている事を探し出し, 理解することは可能である. ただしその為の手間や時間を考えるとこの本の価値がよく理解できる. 本書はそういった類の本である.
各章とも短いページの中に要点がよくおさえられている. ページ数は基礎編ともいえる 6 章までで 100 ページ強, 応用編ともいえるそれ以降が 50 ページ程度. 集中力が続けば (私は続かないが) 一日で読破できる分量と内容である. 本書は Apache モジュール初心者の為のものであり, 深い話題を期待しても肩透かしを食う. 著者もそう割り切って書いているようで, 初心者向けガイドと割り切れば本書の完成度は非常に高い. 完成度の高い備忘録といった感じであろうか.
基礎編は Apache を理解する為には自分のものになるまで何回も繰り返して読んだ方がいい充実した内容となっている. Apache モジュールを作成すると聞くと, HTTP に対する深い知識と Apache API を隅々まで知り尽していないと難しいように感じるが, 基礎編を読むとまったくそんなことはなく, 実現したい機能に力を集中できるような設計になっていることがよくわかる. 応用編は DB との接続方法やプラグイン, 暗号化についての簡単な説明というか, サンプルと言った方が適切であるような内容である. 基礎編に比べると内容の完成度は今ひとつという印象を受ける.
本文の記述は淡々といった感じであるがとても読みやすく, ページ構成についても文章とタイトル, 図の配置などはセンスよくまとまっていて心地よく読める. 本書が提供してくれるのは Apache プログラミングの基本レベルのものまでであり, それに必要なだけの Apache 設計についてである. それ以上は各人がソースを探索してくれという態度をとっている. だから読者によっては物足りない内容であると判断してしまうかもしれない.
センスよくまとまっていると書いたが, それは Appendix 以外の本文に対してである. たとえ Appendix といえど "*.h" ファイルの grep 結果や tree コマンドの出力と大差ないものが 40 ページ近くも掲載されているのはいかがなものかと思う. 私が書店でこの本をパラパラとめくった時に, コマンドの出力結果のようなものが何十ページも載っていたらそのまま本棚に戻してしまいそうだ.
本書は Apache 1.3.x 系を対象にしておりその理由も「はじめに」で述べられているが, やはりこれからは徐々にでも 2.0.x 系に移行していくであろうし, Apache Portable Runtime として独立したライブラリになった APR を使用したソフトウェアも出てきているので, 2.0.x 系についてはもっと多くのページを割いて欲しかった.
本文の Appendix と同じようにサブタイトルはよくない. "ネイティブAPI徹底活用!Webアプリケーション開発/管理最強スキル" は大袈裟すぎます. (笑)
本書には, 簡単な Apache モジュールの作成及び配置, 作成時におけるセキュリティー等の重要事項, 頻繁に使用されるであろう重要な関数とデータ構造の一部 が, 中心として解説されている. 以上の内容により, 本書は Apache モジュールの基本を学習することを目標としている. しかしこの為, 本書の全てを理解しても, Apache モジュールの実用段階に至る為には読者が本書以外で更に調査, 学習を行う必要がある.
尚, 注意すべき事項として以下の二点がある
よって, この 2 点に関しても読者が本書以外で調査, 学習する姿勢が要求される.
本書をお奨めする対象読者としては, Webアプリケーション作成者及び管理者であり, 特に, Web アプリケーションの更なるパフォーマンスの向上を目指す方, 更なるスキルを身につけたい方に推薦したい. また, 最低限のスキルとして C 言語, HTML, Unix 系 OS, Apache HTTP Server の構築の経験, Web アプリケーションの基本概念の理解が必要である.
題名の一部に「Webアプリケーション開発/管理最強スキル」とあるが, これは本書に相応しい表現ではない. Apache モジュールが書けることがすなわち, Web アプリケーション開発及び, 管理最強スキルであるとは, 私は到底考えない. むしろ, Apache モジュールの開発は, Webアプリケーション開発における補助的なスキル, または作業であると私は解釈している. この表現は Apache モジュールが何であるか, Apache モジュールに関する理解を深めることでなにが可能になるのか, という点に関して, 購入前の読者に対して誤解を招く恐れがあるので相応しくない.
各ページの端には十分な余白が残されている為, 読者が適時に余裕を持って書き込みを行うことができる. これは, 本書を読み進め, 理解を重ねることにおいて非常に大きなメリットとなるだろう.
本書の内容においても言及したが, 本書は Apache モジュール製作の基本を学ぶ入門書であり, 本書を学習しただけでは, 業務に使用できる本格的な Apache モジュールの作成は難しい. よって, この手の技術書が一般的な書籍と比較し割高であるとはいえ, これぐらいの内容の濃さで 2780 円という本書の価格は, 割高であると私は考える.
内容が少し物足りない感が否めないが, Apache モジュールの作成における入門書としては解り易くできており, 全体としては評価できる. Apache HTTP Server の構築及び, Web アプリケーション作成, 構築を業務とされている方にとっては, 本書を用いて Apache モジュールを学習することは明らかなスキルアップとなるだろう.
本書は基本的に Apache HTTP Server がどういうものであるかということが分からなければ何も始まらない解説本だ というのが第一に感じたことである. 名称からして HTTP の管理ということだけは素人目にも想像がつくのだが, Web のモジュールとは何か, その機能にはどんなものがあるのか, そのメリットは何かといったあたりが本書の理解のための要件になろうかと思う.
量的には, 前回担当した『横浜ベイキットオフィシャルガイド』に比べると薄手だが, 内容把握は初心者にとっては大いに面倒になると感じた. 前回も大変ではあったのだが, 本書はさらに困難になるという覚悟を強いられた. タイトルはイントロダクションに始まり, 基礎構造, 利用の効能 (まるで医薬品の但し書きのような表現!), 実際的なイメージ付け, 個別的な機能説明という具合に流れている.
「Apache」の簡単な紹介に始まり, モジュール作成のメリット, 基本環境の設定, さらに個別具体的な機能設定, 新規モジュールの開発という流れで綺麗にまとまっている. 巻末にはサンプルを含む各種付録もある. しかし, 正直なところ初心者では理解がしやすいとは云えない. ところどころで語句解説の欲しい部分も見受けられた. また, 後にも触れるが, 基本的にはコード文の書き換え前と書き換え後の違いが分かるような (どの部分を書き換えたのかが分かるような) サンプル表示をして欲しいところである. そもそも, 初心者を意識において書かれてはいない前提になっているため無理もないのだが…….
初心者にとって, 理解しやすい部分と困難な部分との落差があるのが特徴的だった. 以下に簡単なコメントを記しておく.
一連の流れが掴めるように章立てはされている. 後にも触れるが, 「第 1 章 イントロダクション」から「第 3 章 Apache が提供する機能」までの序盤は Apache の世界をなるべくイメージしやすいように工夫がされている. 概念 - 基礎構造解説 - 各種機能の設定 - 応用の流れは解説書の基本として今後も守り続けてほしい.
しかし, 文字列処理・日付処理に始まる具体的な機能の説明となると徐々に難解になってくる. 熟練者向けにはごく当たり前な内容でも, 本書を使って様々に操作をする場合, ソースコードの掲載のしかたから工夫して記述をして欲しいところである. 簡単な説明の後にソースリストを配置されただけでは, どの部分をどのように記述または訂正したのか, また, その部分は全体のどのあたりに位置する内容であるかということが掴み難いのは不便さを覚える.
コンソール操作のコマンドコードとソースコードの併記も, 初心者にとっては単に色分けで記述されているという以上には区別し切れない難しさがあった. コンソールでの導入操作の十分な説明があれば, もっと取り組みやすくなったのではないかと思う. そもそも, 「Apache HTTP Server」を利用する前提となるコンパイラの導入についても解説は省略されているといった具合で, 決して初心者向けには記述はされていないことが分かる. ちなみに本書は「Apache」利用のプラットフォームとしては UNIX 中心としており, 著者は Windows での開発は意識においていないようである.
そんなわけで個別の作業は初心者としては難渋を極めるのだが, それならばせめてもの意味で理解を補うものを盛り込んで欲しいと思う. サンプルのソースコードについても記述・訂正箇所のなお一層の明示のみならず, 記述コマンドの説明, それも索引掲載分のコマンドについては別に章を設けて解説する気配りが欲しい. 巻末に付録記事として折角各種のレファレンスがあるので, その中においてコマンドや専門用語の説明をさらに充実させることが有効ではなかろうか. 出来れば別冊を添付する形式の方が便利になり有り難い.
しかし, 本書は「Apache」が C 言語でモジュールを記述出来ることで, 同言語とタイアップして学習するテキストとしての意義がある一冊と云える. 「第 1 章 イントロダクション」から「第 3 章 Apache が提供する機能」までの序盤は Apache の世界をなるべくイメージしやすいように記述されていることが感じられ好感が持てる. 18-19 ページの「1.2 Apache のライフサイクル」, 22 ページの各種処理シーケンスの流れ図, 38-39 ページの第 3 章中「3.1 リソースプール」の補助図などは Apache 開発を学ぶ第一段階のイメージ作りには大変役立った.
結局のところ, 本書は初心者向きの解説書ではない. それは本書冒頭「はじめに ■対象とする読者」の項で既に前提されているところでもあるが, 「基本的な HTTP の動作や, HTML の記述や, 入力フォームの作成方法, Apache HTTP Server の設定方法などをすでに知っていること」(本文より抜粋) を前提にして書かれているからである. 経験知にしても「CGI や Java Servlet や PHP など, 何らかの手段で Web アプリケーションを開発した経験があれば」(本文より抜粋) というレベルが前提になっているため, 誰でも読めば完璧に理解出来るという内容ではないことを強調しておく.
ただし, いわゆる HTTP, HTML など Web ページに関わる原理の一端を大掴みにする目的で読む分には 初心者でも何とか楽しめるかと思う. 記述の使用言語の点から, C 言語の基本だけは最低限理解した上で本書に向かって欲しい. ソースリストだけは確実に理解するように読んでいくことが望ましい. これは前回レビュー時にも感じたことであるが, 自身でプログラムを組む場合に どんな機能を (What)・ どのタイミングで (When)・ どの部分に (Where)・ どのように / どの程度 (How) 盛り込めばよいのかということを想像しながら読み進めることが大切だと思う.
最後に, この本のレビューの機会を与えてくれた株式会社技術評論社様, 及び www.linux.or.jp Webmasters ブックレビュー担当の方々に感謝したい.