mizzy さん(id:MIZZY)よりご恵投いただいたServerspec本をようやく読み終えました...。
感想が遅くなった分、いつもの脱力したブログと比べて少しだけきっちり書きたいと思います。
すでにServerspecをある程度使っている人が読んでどうだったか?
正直、Serverspecに関してはそれなりに使いこなしているつもりだったので、どれくらい新しいことがあるだろうか...と思っていたんですが、そこはさすが mizzy さんで、非常に読み応えのある本でした。
(とはいえ、Serverspecの経験者は、2章だけは読み飛ばし/パラパラ眺めるに止めても問題ないかもしれません)
これから読み応え要素の具体的なところを紹介します。
開発者が設計思想から語っている本の貴重さ
1章の作られた背景や設計思想の話は、mizzyさんの発表を追いかけている人にとっては目新しいことはないかもしれませんが、本という形でまとまったことには大きな意味があるように思いました。
ところで、ずいぶん前にSinatraメンテナ、 Konstantin が自ら書いたSinatraの本が出ていました。これの内容が、(Sinatraのチュートリアルにはあまりなっていなかったんですが、)Sinatraの内部設計や、Sinatraで作ったアプリはどうあるべきかみたいな話にまで及んでいて非常に面白かったのを思い出したりしました。
(なお、Sinatra本に関する蛇足を述べると、これは邦訳された電子書籍版もあるのですが、短い本ですし英語版を直接読まれることをお勧めします)
mizzyさんによるServerspec本は、KonstantinのSinatra本を超えるかもしれないほど、作者の思想が随所に出てくる興味深い本です。1章以外の箇所でも、豊富で具体的な応用例(DockerやLXC、Consul、Nagios、その他との連携例を含む)とともにmizzyさんがどう考えているのかが紹介されるので、思想がすとんと入りやすいんではないかと思います。
ツールは正しく背景を理解されてこそ正しく使われて、最大の効果を発揮するものだと思っています。そういう観点でも、Serverspecのユーザがより良くServerspecを使う上で、大きな助けになる本だと思います。
Specinfraユーザとしての感想
個人的に Populus という面白ミドルウェアを作っていて、その内部でリモートのホストにコードを実行する必要があり、その実装としてSpecinfraを試しています。
そういう立場でこの本を語ると、Specinfraがどういうものか、具体的にServerspecの内部でどう使われているのか、といった解説が個人的にとても良かったです。また、Appendixでは単体での利用法のサンプルコードや、Itamaeでの使われたかも載っていて便利でした。
(現在時点からすると)少しバージョンが古いSpecinfraの紹介なので、たとえば SSHバックエンドの複数ホストへの対応 みたいな例については言及されていませんが、Specinfra作者が自ら、それも日本語で(!!!)Specinfraの解説をしているというのは、これから使おうと思っている自分にとって大変ありがたかった、という他ありません。
Specinfra自体も興味深いプロダクトと思います。この本を機に、もっと利用するプロジェクトが増えると面白いなと思います。
そして重版の暁には付録CにPopulusも載せてもら...えるような立派なプロダクトに育てよう...。