「フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門」読書感想文
こんにちは、7月になりましたね。本日7月2日は『フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門』発売日でございます。KADOKAWA/アスキー・メディアワークス様、ご献本いただきまして有難うございます。
[amazonjs asin=”4048660683″ locale=”JP” title=”フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門”]
目次だけを読むと、bashでCMSを作るのに特化した解説本のように見えますが、CMSのコードは全体の3割もなく、実際にはawkやsedの文字列処理、bashの関数の使い方など、シェル芸勉強会
会場で「できた!」の名乗りを上げるのに非常に役立つTIPSの集合体とも言えましょう。
勿論本書の目的はシェル芸勉強会対策本ではないのですが、bashCMSを作る、という題材を通して、UNIXのお作法だけでこれだけのことができるんだよ、という1つの例を示していると思って読み進めるとよいかと思います。鈴木 嘉平さんのブログでも言及されていますが、「whileやforのループなんて使うな」「関数化する手間かけるんだったらコピペでいいじゃん」的なところに違和感を覚える方もいらっしゃるかと思います。大人数でのそこそこな規模での開発だったら、コーディング規約などでお作法を叩きこまれたりされることもあるでしょう。しかし、本書のキッカケは「1日でCMSを作る」なのです。しかも、利用者(記事の執筆)は上田さんか私しかいません。旧友の会blogが攻撃されている中、早くリリースすることが最優先、そして「自分たちですべてのデータが見える(管理できる)」を至上命題としていたのです。まさに高速開発ですよ。
上田さんがコードを書いて新しいブログエントリを書いている中、私は旧友の会ブログから記事や画像をエクスポートし、新ブログへ移植する準備を手伝っていました。やれ開発体制だの何だのってのはどうでもよくて、まさに阿吽の呼吸でした。facebookのチャットで最低限やらなきゃならないことを決めて、アウトプットのイメージを共有し、お互いできることを既存の技術でやった、それだけのことです。ここには新しいWEBアプリのフレームワークが出てくるわけでもなんでもなく、ただただ何より大事なデータを愚直に移植した、再び見えるようにした、の連続です。前例のないことでしょうから、誰も答えなんて教えてくれませんしググっても意味がありません。ただただその時は「どうしたらできるか?」だけ考えてました。
しかし、こうして本にまとまったものを読んでみると、実に単純なコマンドを愚直にパイプで繋いでいるだけなのです。パーツごとに分解すれば、スクリプトにするまでもない行数で、まさにシェル芸の元祖がここにあったとも言えるでしょう。Twitterのタイムラインを見ると、「シェル芸こわい」「シェル芸ガチ勢頭おかしい」などお褒めの言葉をいただきますが、パイプを1つ1つ外していくと、単にコマンドラインの出力がそこにあるだけなのです。これらの組み合わせが強力に作用する、そして発想の数だけ単一のコマンド以上のアウトプットができるのです。
上田さんのブログでは、過去のシェル芸勉強会スライドが一覧になっています。過去問を解いてみるのもよいですが、CMSを作るといった目的があったほうが、より楽しくシェル芸が身につくでしょう。こうして叩いたコマンドの数だけ、確実にシェル芸力が身につきます。シェル芸力が身につくことで、新たな問題が出てきたとしても、きっと「こいつぁ grep -o と xargs で・・・」のように、どう攻略すればよいかの案が勝手に頭にわいてきます。こうしたシェル芸の集合体でCMSまで作れるという、ひとつのマイルストーンがあるだけでも、チャレンジのし甲斐はあるでしょう。勿論、愚直に本書の最初から最後までを写経してご自身のサーバにbashCMSを構築するのが目的でも構いません。
流行りのツールを覚えるのもよいですが、コンピュータとは何か、データをどう扱うか、の思想の一つとして本書を活用するのもありだと思います。が、1点だけ。あくまでこれは王道ではなく、人によっては邪道と思われるかも知れません。しかし、理屈より実践、手を動かして得た知識こそ本物だと信じて疑わない方にはおすすめする一冊です。
時間があれば、買って読んで見たい。