ECWorks Blog

ECWorks Blog

CakePHPを中心としたサイト開発情報をメインに公開。新しもの好きなので時々製品レポートなんかも。

【CakePHP】「詳解CakePHP辞典(CakePHP辞典2)」を刊行しました!

大変にお待たせしました!

ご好評いただきました「Pocket詳解CakePHP辞典」の続編、「詳解CakePHP辞典(通称CakePHP辞典2)」が3/15日に無事刊行となりました。基本的に本書はCakePHPバージョン2系対応本ですが、前書でページ数の都合上なくなく削った機能の解説を追加し、より多くの情報を詰め込んだ「これぞ辞典!」と言える内容となっています。

facebookのECWorksページでも若干紹介させていただいていますが、本書が前作と比較してどのような変化があったか、また多くの方からご要望のある「電子書籍化」について、執筆時のエピソード的なものを交えてちょっと書こうと思います。

前作と変わったところ

Amazon等の書籍紹介ページをご覧になりますと、前作とあまり変化がないように見えますが、書店等で実物をご覧いただければ一目瞭然です。

  • 判型がひとまわり大きくなった
  • ページ数が増加
  • それでいて若干薄くなった
  • 紙質が柔らかなものとなりページが開きやすくなった
  • バージョン2系の現時点での全てのバージョンに対応(2.0〜2.3)
  • 前書で取り上げることが出来なかったクラスライブラリ・テスト等を収録
  • 本文中のクラスメソッドの収録順をアルファベット順にソート

…などなど

判型が大きくなった&ページ数の増加

本書ではバージョン2系から新しく搭載された、もしくは改良された機能は勿論、バージョン1系で収録できなかった機能についてもかなり盛り込んだため、結果として大幅にページ数が増加することが懸念されていました。
脱稿時に、前作換算でページ数を算定したところ、なんと1200ページ!! このままでは厚さ100%増しとなってしまいとても実用にはならなくなってしまうため、出版社側との議論の結果判型を大きくし、出来るだけページ数を増やさない方向で調整を行いました。
判型については「紙面が小さすぎ」「とてもPocketではない」とのご意見もあり、あの判型にこだわる必要もありませんでしたし、紙面が小さいことですぐに閉じてしまうなど逆に扱いにくいこともありました。なので丁度良かったのかもしれません。

それでいて若干薄くなった・柔らかい紙で開きやすくなった

ページ数はやや増加しましたが、本の厚さは若干薄くなりました。これは前作の紙が厚く硬めの紙だったため、柔らかく薄いものに変更したためです。このため開いたページが閉じにくくなりより扱いやすくなったと思います。
逆に、以前は硬い紙だったため自立が容易でしたが、本書は使い込んでくると立たなくなるかもしれません。

バージョン2系の現時点での全てのバージョンに対応

本書の発売は遅くとも3月であることが宿命づけられていた関係で、CakePHPのバージョンアップのタイミングに関してはかなり気をもんでいました。追記の可能な丁度良いタイミングで2.3がリリースされたため、本書にもその情報を盛り込むことが出来ました。本当に運が良かったです。
逆に、ページ数の都合からバージョン1系の情報はばっさりと削りました。両方の情報が載ってしまうと混乱するでしょうし。もしバージョン1系の情報が必要になりかつ前作をお持ちでない方は、是非「Pocket詳解 CakePHP辞典」の方をお求めください。しばらく併売されると思います(でも数量が減っているため入手はどんどん困難になると思われます)。

前書で取り上げることが出来なかったクラスライブラリ・テスト等を収録

前書ではページ数の都合から紹介できなかったクラスがあり、その中で「テスト」に関する仕組みを紹介できなかった経緯がありました。今回改訂版(実際には改訂どころか書き下ろしに近いのですが)ということで増ページが許され、テストをはじめとする多くの掲載できなかったクラスを盛り込みました。
テスト以外では、ファイル入出力やフォルダ管理に必要な「Fileクラス」「Folderクラス」、低レベルなネットワークアクセスを実現する「HttpSocketクラス」等、あまり情報として出回っていない仕組みについても掲載することが出来ました。

最後の最後まで悩んでいたのが「データソース」の周辺で、例えばCake標準でないデータベースにアクセスしたい場合やその他低レベルのデータ入出力インターフェースとしてデータベースの情報は必要になりますが、表面的にはモデルと似通った機能で構成されていること、解説をし出すと膨大で少々の増量では済まないこと、そもそもデータソースの利用やカスタマイズに関する情報は上級者向けのものが多い…等の理由で泣く泣く削りました。ただし、データソースのグループの中に「CakeSession」が含まれており、これだけは誰もが扱う重要な仕組みであるため、例外的に掲載しました。

また、テスト編の情報はあくまでも「Cakeで拡張された部分」のみの掲載となっています。Cakeのテストの仕組みは「PHPUnit」を オーバーライドあるいは別のクラスを利用して実現されているためPHPUnitの知識が必要になるのですが、本書でそこまでの解説をしてしまうともう1 冊分の情報量を詰め込むことになってしまいます。なので本格的なテストの記述についてはPHPUnitのマニュアルを参照していただくか、PHPUnit について書かれている別の書籍を併用していただいた方が良いと思います(PHPUnitの本はほとんど見受けられないので、誰か書いてくれないかなぁ…)。

紙の書籍ではやはり「ページ数との戦い」がどうしても発生してしまいます。これについては「完全電子書籍化」でない限りはなかなか難しいと思うのですが、紙の書籍でギリギリの情報量と実用性を考慮した上で今回の内容となりました。

本文中のクラスメソッドの収録順をアルファベット順にソート

辞典としての便利さの向上ということで「収録メソッド・プロパティ」をアルファベット順にソートしました。前書は「(頻度の高いものを除く)クラスファイル内での登場順」で掲載していました。これは「辞典で調べた後にソースコード内の該当箇所を検索しやすくする(もしくはその逆)」のためだったのですが、CakePHPをあまり知らない方にとってはソートされていた方が引きやすいだろうということで今回変更しました。

なお前書のAmazonの書評で「索引がクラス順にソートされているため、初級者だと機能を知らないので引けない」というコメントがあったのですが、最初メソッド名でソートをしてみたのですが、むしろこちらの方がわかりにくいのと、見た目的にも項目が不揃いで大変に見にくく難読であったため元に戻しました。基本的に内容が分からない場合は索引から入るのではなく本文から入っていただいて概要で判断していただいた方が分かりやすいのではないかと思います。

電子書籍版について

前書から散々に言われていて、今回もまだ未解決の事象として「電子書籍化」があります。確かにCakePHP辞典は電子書籍化された方が便利な事もあるのですが、おおむね次のような理由から実現に至っていません。

  • 出版社に電子書籍のインフラがないため
  • CakePHP辞典のそもそものコンセプトが「実務での紙で引くことの便利さ」であるため
  • CakePHPの認知度を上げるには紙媒体を優先した方が良いため

出版社に電子書籍のインフラがないため

電子書籍化ができない一番の理由は、現時点で出版社側に「インフラ」が無いためです。実は前書の時にも同様に言われ、議論もされたのですが、実現には至っていません。こればかりは出版社側の対応を待つしかありませんが、現場レベルでは十分に重要性を理解しており、電子書籍版について前向きであることは間違いありません。

コンセプトが「実務での紙で引くことの便利さ」であるため

これは私が100%オンラインで育っていない古い世代であるからかもしれませんが、やはり紙でペラペラめくることでの引きやすさは実務上で大変に役立つため、心情的に電子書籍よりも優先度が高いというのがあります。オンラインにはCookbookがありますし、ググって調べることも出来ますから、そちらで代用していただくことは出来るでしょう。
ただ、あくまでも優先度として紙の方が高いというだけで「電子書籍を出したくない」のではありません。現状出版が出来ない状況ですので、こればかりはどうしようもありません。

CakePHPの認知度を上げるには紙媒体を優先した方が良いため

ちょっと裏側の話になりますが…
電子書籍にこだわるのなら別の出版方法もありますが、やはり紙の本として出版することで書店に置いて貰うことが出来、またいろいろなオンラインストアなどでも取り扱って貰え、その結果googleの検索など多くの場所で「CakePHP」のキーワードが登場するようになるため、CakePHPの認知度を上げるためにはやはりまだ紙のほうが優勢だと思うからです。
例えば、自分の利益を優先するのであれば、出版社などを通さず個人的にKindle向けや別の電子書籍媒体を使って出版すれば、多分印税率は高く儲かると思います。ただ専門書の執筆で貰える印税はそれほど多くなく、実際のところ執筆にかける時間を別の案件などに使った方が遙かに上でして、電子書籍にしたところで大したことはないです。それよりは、CakePHPをより多くの方に使って貰いたい気持ちの方が上ですので、より効果的な方法として紙の方を優先しています。繰り返しになりますがあくまでも優先度の問題で、電子書籍「も」出せるのならそれに越したことはありません。

作業机の上の1冊に

本書はあくまでも「辞典」であり、この1冊でCakePHPの学習が出来るかどうかといわれると謎です。これは「英語の勉強を英和辞典1冊で出来るか」ということと同じで、CakePHPの学習には別の入門書を併用された方が良いと思います(例えば「CakePHP2 実践入門」のような素晴らしい本があります)。本書は、学習の過程で「より深くCakePHPの機能を知るため」あるいは学習を終え実践的な段階に入ったときに「こんな機能は無いのだろうか?」「こんな使い方は出来ないだろうか?」「この機能はどういう使い方だったっけ?」といった時に使っていただくための本で、いつも机の上に置いていただければと思います。Cake2が発表されてから1年以上立った今でもCake2の情報はネット上でもなかなか無いのが実情ですが、本書がよりCake2を便利に使っていただくための1冊になっていただければ幸いです。

詳解CakePHP辞典2.0/2.1/2.2/2.3対応

詳解CakePHP辞典2.0/2.1/2.2/2.3対応 [書籍]

価格¥ 3,456

著者滝下 真玄

出版社秀和システム

出版日2013-03-14 (木)

商品カテゴリー単行本

ページ数728

ISBN479803746X

Supported by amazon Product Advertising API

CakePHP2 実践入門 (WEB+DB PRESS plus)

CakePHP2 実践入門 (WEB+DB PRESS plus) [書籍]

価格¥ 3,110

著者安藤 祐介, 岸田 健一郎, 新原 雅司, 市川 快, 渡辺 一宏, 鈴木 則夫

出版社技術評論社

出版日2012-09-29 (土)

商品カテゴリー単行本(ソフトカバー)

ページ数416

ISBN4774153249

Supported by amazon Product Advertising API

WebデザイナーのためのCakePHPビューコーディング入門

WebデザイナーのためのCakePHPビューコーディング入門 [書籍]

価格¥ 3,240

著者滝下 真玄 , 原 一浩

出版社秀和システム

出版日2012-03-28 (水)

商品カテゴリー単行本

ページ数424

ISBN4798033146

Supported by amazon Product Advertising API




Comments are closed.