2014年6月24日火曜日

「フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門」刊行!




シェル芸の伝道者こと元USP研究所の上田隆一さん、FreeBSDの使い手であり和太鼓の演奏者でもある後藤大地さんの共著である「フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門」をついに刊行する。7月2日発売!

Amazon絶賛予約受け付け中!




この本は、私が今まで作ってきた本の中でもかなり異色な本といえる。なにせ著者の上田さんが謝辞に「このような掟破りなものを出版する機会を作っていただいた......」などと書いているくらいだ(笑)。簡単に内容を紹介すれば、シェルスクリプトを使ってCMS(Content Management System)を作っていく過程をステップバイステップで解説した本、ということになるが、単純にソースコードを掲載してその動きを説明したものではない。たとえば、CMSに必要なデータをテキストファイルとしてファイルシステム上にどのような形で構築するのか、その際にプログラマが何を考え、どのように判断するのか、という思考過程がちゃんと書き込まれている。

また、単に動くものを作るだけではなく、パフォーマンスを計測して改善するという点についても解説されている。このとき、テスト用のダミーデータをシェルスクリプトで作る方法についても述べられていて、なかなかに実践的だと思われる。

ちなみに本書で解説しているbashCMSというCMSは、実際にUSP友の会のWebサイトで使われているものがベースになっている。シェルスクリプトの解説のために作られたサンプルではなく、実運用を前提に作られたプログラムの内容を解説しているわけだ。bashCMSはGithubで公開されており、MITライセンスが設定されているのでだれでも自由に使うことができる。


これだけだと、よくできた普通の解説書のように思われるだろうが、そうじゃない。たとえば、普通のシェルスクリプトの入門書に丁寧に説明されているwhileやらforなどのループ処理について、「そんなもの使うんじゃねーよ」と書いてある(かなり乱暴にまとめているので誤解なきよう)。さらに、通常であれば、似たような機能が複数箇所で必要になったら関数にまとめましょう、とこれまた丁寧に説明されているものを、「関数なんかにまとめずコピペしようぜ」と書いてある(繰り返しますがかなり乱暴なまとめです)。さらにさらに、普通の解説書ならば、プログラミングする際にはソースコードの再利用を必ず考えましょう、と書かれているはずだが、本書には「コードを再利用するより書き直したほうが早いだろ」と書いてある(同上)。

正直、読んでいてたまげた。私は二十数年間にわたってIT系の編集者をしているが、今までは「プログラムの構造化は重要です」とか、「情報隠蔽とカプセル化を用いてプログラムの部品化を進めましょう」とか、「同じようなコードがあちこちに出てくるのは典型的な悪いコードです」とか、そんなことが書いてある本を作ってきたのだ。まさかこんなことが書いてある本を出すことになろうとは、思いもしなかった。人生なにが起こるかわからない。

どうして著者の上田さんが上記のようなことを書いているか知りたくなったら、ぜひとも本書を読んでほしい。きっと、目からウロコが落ちまくるか、あるいは間違った考えに洗脳されるに違いない(笑)。

とにかくこの本は読んでいて楽しいので、シェルスクリプトが好きな人、UNIX好きな人にはお勧めだと言える。私が特に好きなのは、6章の「シェル芸でログの集計」という章だ。ここでは、長いシェルスクリプトを作る際に、1つ1つの機能をまずはワンライナーとして実装し、その動きを確認しながらシェルスクリプトを組み上げていく過程が解説されている。名人の技が次々と開陳されていくのを眺めているようで、実に楽しい。ぜひ一度目を通してほしい。

あと、お勧めなのが、章末に入っている後藤大地さんのコラムだ。UNIX系OSのディープな部分にちょっぴり踏み込んだ、興味深い話が展開されている。inodeを使い切る話とか、ディスクキャッシュを利用したシェルスクリプトの書き方とか、実におもしろい。


本書を編集して、改めてシェルスクリプトの強力さ、UNIXのソフトウェアツールという考え方のすばらしさを痛感した。まずソースコードが短い。当たり前といえば当たり前なのだが、他のスクリプト言語ではこうはいかない。ソースコードが短ければ、それだけ理解しやすくなるし、作る時間も短くてすむ。これは他の言語にはない、シェルスクリプトの大きな大きな利点だ。また、データをRDBMSなどに収録せず、テキストファイルとして保持する手法についても、データ構造のわかりやすさ、そしてデータをプログラムから操作する際の柔軟さという点で、感心させられた。

なんかもう他の言語なんていらないじゃん、プログラム作るなら全部シェルスクリプトでいいじゃんみたいな気分になっている。どうもシェル芸人上田隆一に洗脳されてしまったらしい(笑)。

さてさて、名著と呼ばれるか迷著と呼ばれるか、怖いもの見たさあふれる方はぜひ本書を手にとって見てほしい。では、最後に上田さんが「怖いもの見たさあふれる人」に送った言葉を引用して本エントリを終わりたいと思う。

こわくないよ。



0 件のコメント:

コメントを投稿