毎日コミュニケーションズ 様のご厚意により,
書籍 "横浜ベイキットオフィシャルガイド〜オープンソースXMLプロジェクト完全解説" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
毎日コミュニケーションズ 様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
本書は横浜ベイキットの提供する 2 つのツール BayServer, Xi の解説書です. 横浜ベイキットがどのようなソフトウェアを提供しているのか, 横浜ベイキットが提供しているツールを用いて何ができるかなどがわかります. 「本書の構成」には, 初心者から熟練者までを対象としており, XML に対する習熟度は問わないと書いてあります.
しかし, 実際に読みこなすためには, かなりの前提知識を必要とする構成になっている気がします. 必要な前提知識としては,
などが挙げられます. 初心者向けというよりもどちらかというと かなり敷居の高い本であるように感じられました. XML の入門書として買ってしまうと痛い目に会うと思います. むしろ, BayServer や Xi というツールを既に知っているか, 日常的に利用していて, これらのツールを使って どのような仕事ができるかを考えている人たちにとっての サンプル集と考えた方がよいという印象を受けました.
それぞれの章を読みながらメモしていった簡単な感想を以下に示していきますので, 参考になれば幸いです.
横浜ベイキットが提供している各種ソフトウェアの概説です. 横浜ベイキットというプロジェクトや提供しているソフトウェアの概要を おぼろげに理解するために読むとよいと思います. また, 既に横浜ベイキットが何を提供しているのかを 大まかに知っている場合も使いやすいのではないでしょうか. しかし,事前知識のない人にはなじみのない用語がとても多く出てきています. Apache-SOAP, IANA エンコーディング, DOM オブジェクトなどといった言葉に関する知識が 既に読者の頭にあるものとして説明がなされており, 提供されるツールの利点をきちんと理解するためには, それらの知識が必要不可欠だと思います.
XML サーバ BayServer, プログラミング言語 Xi のインストール方法についての記述です. インストールは Linux ではなく, Windows に対して行い, インストールから設定までの一連の流れを記述しています. いわゆるインストールマニュアルと考えた方がよいと思います. 本書が想定しているユーザはサーバ管理や UNIX 系 OS に相当に詳しいと思われるので, あえて Windows 向けのインストールを行う理由があまりよくわかりませんでした.
XML に関する記述です. XML を理解したいと思っていた私にはありがたい記述でした. しかし, XML の理解は本書の主テーマではないので説明自体は短いものになっています. そのため, XML のきちんとした理解には他の書籍が必要だと思います.
XML プログラミング言語である Xi (ザイ) に関する説明です. Xi で利用できるデータ型, 制御構文などのいわゆる基本的なプログラミングの文法が説明され, そのあとに Web 関連で利用頻度が高いと思われる事例がいくつか載せられています. サンプルアプリケーションとして載せられているものとしては, 掲示板, メール送信, google 検索, Web サービスなどが挙げられます. これらのサンプルはソースとともに載せられ, ソースについて解説が加えられていくという形でページが進んでいきます. このあたりからも, XML を理解するというよりは, 既に Xi を利用していて実例を探している人向けの書籍であるという印象を受けました. 逆に, Xi というプログラム言語を体系的に理解することは難しいかもしれません. また, 読みこなすためには HTML タグの意味についての理解やプログラムの知識が必要であると思います.
5 章が PDF 文書の出力に関する解説, 6 章が SOAP に関する解説, 7 章が Xi に関する解説になっています.
これらの章は, 読むというよりは随時参考にするための文章だと思います. 例えば, PDF 文書について言えば, 白紙, Hello World,…のように順番に PDF ファイルを作っていきながら, ソースコードについて解説しています. 「Xi で PDF 文書を作ろうと思っているけど, レイアウトをするにはどうしたらよいのだろう」 「Xi を拡張したいのだけど, どうしたらよいのだっけかな」 などのように, Xi を使いこなしていく過程で, 疑問が出たときにその時々で該当箇所を探すという形がよいと思います.
日本発のオープンソースプロジェクトである横浜ベイキットというプロジェクトを 今回はじめて知りました. このようなプロジェクトがあることを知っただけでも, 価値はあったと思います. ですが, XML についてほとんど知らない私には, 正直とても難しい本でした. 私の知識不足のせいなのですが, 知らない言葉を知らない言葉で説明されるため, 頭の中が混乱してしまうことがたびたびでした. 書評の方も, XML 初心者から見た印象になっていますので その点も勘案してお読みください. 以上, ご参考になれば幸いです.
作って遊べる XML. これが読後に受けた印象だ. オフィシャルガイドという表題から受ける堅い雰囲気はなく, 読みやすい. 構成としては, 説明が長過ぎないのがいい. 平易で小さいセクションに分かれているので, いいリズムで読める. 文体もやさしい. 執筆者が多い割に統一感があり, 全体を通して同じ調子で読めるのは評価できる. 総じて「とっつきやすい」本だ.
サンプルを多く配置し, その作成を通じて理解を深めていく形式なので, 手を動かして考える人には向く. 逆に, 頭で先に理解しておかないと手が動かない人には辛い. このあたりで評価が割れるだろう. 手を動かす派にはありがたい大量のソースが, ざっと読みたい派には邪魔に思えるかもしれない.
横浜ベイキットの入門書だということに間違いはないのだが, 本の性格を端的に示すなら, XML の入門書と呼んだ方がいい. 執筆者が意図したこととは異なるのかもしれないが, 私はそう感じた.
XML 入門書として見たとき, この本の味は独特だ. 多くの XML 入門書は, 技術の背景や表記上の規則といった理詰めの情報を割愛できず, 入門者には厳しい. ところがこの本では, もともと XML 入門書ではないという開き直りがちょうどうまく働いている. XML そのものについての説明は簡素で, XML を使った具体的なシステムを示して, 実際に読者が作成し手元で動かせるように誘導している.
特に, これまでに他の入門書で, 膨大な説明に耐えきれず挫折した人や, XML の説明は理解できたが何の役に立つのかわからない, といった人にはお勧めしたい. XML の具体的な使用例は, 入門者が「現実的な使い方」を知るために役立つだろう. 掲載されているサンプルは日常で使えるものと結びつけやすい. 目的がはっきりする上, 実際に動かすところまで行くので, XML を現実に使えるのだという印象を強くする. ただし, バックグラウンドの説明が少ないため, 理屈の部分については追加の参考書が必要になるだろう.
作業の説明が細かいので, 初心者にはよい. 私は半年ほど前に, 雑誌に掲載された説明を読んで導入したのだが, その時に比べると説明が詳細になり, 新しく使い始めるときの敷居が低くなって入門しやすくなった. ソースが全て提示されるので, 細かいテクニックにも触れられる. 具体的なシステムの構築例で人の書いたソースを読むことが, 脱初心者をめざす者には勉強になる.
その反面, サンプルやソースを端折って, 表面だけを読んでしまうと, 得るものが少ないかもしれない. 実際に手を動かす労力を惜しむ人には勧められない. また, 初めての人が全章を通して読み切るのは難しいと思われる. 冒頭の「本書の構成」で触れられている通り, 前半と後半でかなり難易度が変わる. 最初に前半を読んで, しばらくいじりたおした後, 再び本書を手に取り, 後半を読み進める, という使い方が良さそうだ.
残念なのは, Xi 関数を一望できる説明箇所が無いことだ. せめて付録でもいいから, 制御文や関数の一覧が欲しかった. 説明の筋書きなどはよくできているのだが, ページを行き来せずに予約語と簡単な説明が一望できる一覧表が欲しい.
Linux ユーザーとしては, Windows 向けのパス表記が若干気になる. 導入先のパスを環境変数などに置き換えて, Windows でも Linux でもほとんど差がないような記述にする, という工夫もできたように思う.
読者のターゲットとして, HTML と CGI の習得者が前提になっているようだ. 確かにこれまでは, XML に興味を持つ人なら既に HTML ぐらいは学んでいる, という前提が通用してきた. だが今後の XML の普及につれて, いきなり XML に入ってくる人が増えるだろう. そのあたりの知識が必要となることについて冒頭で触れておくなり, そういった知識を持たずにこの本を手にした人のための参考文献を記載するなりしてあれば, さらに間口の広い入門書となっただろう.
断っておくが, 評者は Linux も Unix も使用経験がなく, プログラミングについては初心者の域を超えきれない. 以下の記述は飽くまでも「XML とはどういうプログラミング言語なのかを探る」 というスタンスで進めていくものである. 当然, その目的が達成出来るかということに意識を置いて述べていくものである.
評者は当面 「初級シスアド/基本情報技術者資格」の取得のため学習を継続中であり, その習得の補完として XML の学習を活用しようというスタンスで 今回の企画に取り組んでいる. 換言すれば, C 言語や SQL, データベース等の理解を, XML の角度から切り込むことで達成しようとするものである.
私が期待していた本書の内容は「耳慣れないソフトウェアーとは云え, XML 言語について基礎から学んでプログラミング実践の力を養成出来るようになる」 というものであった.
プログラミング言語の一つである XML の専門書ということで, 分量は覚悟していた通りのものだった. しかし, 最初に中身に軽く目を通して「これは大変なものを引き受けた」 という気持ちになった. それもそのはず, 評者は XML の実際には初めて出会ったわけであり, 基本的な仕組みを把握し切れていないまま, サンプルデータの多い本書を読みこなさなければならないというのだから. 「横浜 Baykit」というソフトウェアーや それを確立した本書の著者でもある団体自体が未知のものであり (3 年前に登場したばかりだから認知度がまだまだ低いのも当然であるが), 際物の専門書なのかという印象が強く多少の抵抗を感じてしまったことも事実である.
ただ, XML について若干の説明を施した後に, Xi を利用した Web ページの表現方法, メールや PDF の文書作成等をはじめとする各種応用の方法が記されているので, 流れは掴みやすかった.
基本的に著者は XML のプログラミングの分野では新興の団体であることもあって, 存在を世に知らしめることが第一のねらいと思われる. また, これまでのプログラミング言語の世界を見直し, いかに XML がプログラミングにおいて活用しやすいものなのか, さらには「横浜 Baykit」がプログラミングの世界で 時代の先駆とならんとする意欲を 読者に強くアピールすることが目的であることは間違いないところである.
評者の場合, 事前に「初級シスアド」や「基本情報技術者」について 学習を継続中ということもあって, その中の C 言語・SQL の項を再学習しながら, 本書の読破を試みた. XML でも, C 言語で学習する入れ子構造のプログラムやデータベースの項に学ぶ SQL の原理が十分参考に出来るからである. タグと呼ばれる入れ子の理屈さえ分かっていれば サンプルデータは読解もしやすくなるだろう. データの解説も施されているので, 熟読すれば紙面上のみのトレースでも理解は可能であろう.
それではデータの読解はどんなイメージで捉えればよいか. 評者の場合は, 主語・述語などの要素を大掴みにしてから逐次翻訳していく 英語の基本 5 文型解析と類似しているように思われた. これはコンパイラの処理手順を踏むようなものとも云えるかも知れない (基本情報技術者資格試験の知識). 大意を掴むことが XML プログラミングの学習においても理解の近道なのだと思う.
アプリケーションソフト作成の趣旨に始まり, その基盤設定から, XML の基本的な仕組み, さらにはその応用という具合に綺麗にまとまっている. 文章は少なめではあるが, 実際の画面のコピーやプログラムリストも多く掲載されている. 指示通り操作を進めていけば内容の理解は確実に出来る. ただ付属の CD-ROM は本文での説明が今一つ足りないため, 思うように使えなかったのが残念である. 初心者が使うためには, 前提の作業から丁寧に解説して欲しい. 勿論, 分からないままで泣き寝入りすることなく今後も学習は続けていく. 全体的には本文だけでも基本の理屈が把握出来るほど理解しやすい.
サンプルデータとその解説文の掲載には不満が残る. 「第 4 章 Xi プログラミングとは」 ではプログラムを確認する作業に手間取ってしまった. 特に, 127 ページの「外部 XML 文書の呼び出し」の記述は, 図 4-3-3 とリスト 4-3-6 でページが前後するにも拘らず (実際には, 図 4-3-3 は 8 ページ溯って確認出来る内容であり, リスト 4-3-6 は 2 ページ前の掲載になっている), その旨を断らず一文にまとめあげたことで, どのページに立ち戻れば良いか混乱を感じた. ページをまたがる内容を一文で示すならば, その一々について, 所在ページを添書きするべきである.
116 ページでは内容が食い違う表記が見受けられた. 「環境設定 1」と題する文中で, 取得出来るディレクトリーが 2 つとあるが, 直後に掲載されている具体的なディレクトリー数は 3 つになっている.
121 〜 122 ページの記述で, アプリケーションの設計において, 認証機能や入力文字列のチェックの項目が省略されていた. ゆゆしきは 121 ページ最下行.
「登録者が登録をした場合は, データベースから削除せずに, 解除処理を行った時間とフラグを更新します. こうすることで, 登録状況の簡易履歴管理を行うことができ, 誤って解除してしまったデータを復旧しやすくなります」 (原文まま).
これは事実上管理者側の論理であり, 個人情報保護の観点から云えばユーザー不在の話である. 管理者側が個人情報を悪用する危険性を孕むことなのではないか. 一見便利な方法論と理解出来るが, 評者としては軽々に記述して欲しくない表現である.
本書でこの項目がなぜ盛り込まれなかったのか. 特に付属 CD-ROM によるインストールは, 不慣れな初心者では失敗しやすいことが分かった. 対処法はツールを添付する以上, 詳細に掲載するべきである.
著者は冒頭「本書の構成」で XML に対する習熟度は問わずとしているが, 私が想定するのは, 特段の指針を持たずにプログラムを組んだり, プログラムについて基礎論のレベルから学習をしている人々である. その際, 専攻の学生でなくても, 国家試験 <基本情報技術者試験> の C 言語などの前提知識の習得を済ませておくと 理解が深まるだろう. その意味では "XML のごく入門的な事がら" (前掲「本書の構成」中) は必要であり, 力量を問わないとする著者想定の読者像とは若干のずれがある.
ただ, 専門用語は別として, 本文は日本語なのだから丁寧に読めば恐れるものではない. 基本的な論理把握力があれば読み応えはあるだろう. 取り立ててプログラミングの専門書という意識を持たずに 「読み物」として利用するのも面白い.
初心者としてこれを読むとなると多少は苦労する一冊だというのが率直なところである. しかし, 本書はプログラミングの学習に大変役立っている. 応募を機に XML についてしっかりと学ぼうという意識が強かったので, XML という言語を題材にしてその基本的な構造の理解を深められたことは有意義だった. プログラミングの学習が入力データ量の膨大さゆえに 敬遠されやすいことも実感しているのだが, 本書は完全な未修得者でもじっくり読めばそれなりに使える. プログラムの構成要素の解説や, SQL データベースの構築原理などは他の言語の学習においても活用出来る.
学習者諸氏には, まず, 他のプログラミング言語と照らし合わせながら読破をして欲しい. 本書の中心は第 4 章だと思うので, 初心者は XML のプログラム構造に最も意識をおいて学んで欲しい.
最後に, この本のレビューの機会を与えてくれた 株式会社毎日コミュニケーションズ (MYCOM) 様, および www.linux.or.jp Webmasters ブックレビュー担当の方々に感謝したい.