はじめに
私は IT系といえばそうなのかなという感じの職場にいますが、Web系というより組み込み系に近い職場です。ただ、最近では組み込み分野でも IoT の煽りを受けてWebサーバーが組み込まれた機器が増えてきています。そういう意味では組み込み系もWeb系といえるかもしれませんね。そういう理由もあってWebの基本技術を知識として身に着けておくべくこの本を読もうと思いました。なので、この本を読めばある程度Webの何たるかがわかるかなと思っていました。結果としてそれはいい意味で裏切られたわけですが、最後には読んでよかったなと思えた本でした。
Webサービスのリソース設計についての本
この本のメインテーマは、表紙にある通り「実践的なWebサービスの設計指針」についての本になるのかなと思います。なので、第5部の「Webサービスの設計」の部分が作者の一番書きたかったことなのかなと思いました。そして、第5部が一番熱を入れて読めた気がします。第4部までは第5部を説明するための用語を解説しているような、そういった印象を受けました。ただ、第4部までも重要なことがたくさんあるので、読まなくていいというわけではないですが、メインどころだけ読みたい!という人は第5部から読んでみてもいいかもしれません。
個人的によかったところ
第16章
第16章の「トランザクション」や「排他制御」のパートは私が今まで疑問に思っていた部分に答えてくれたよいパートだったと思います。おそらく今後も何度も見返すだろうなぁと思います。HTTPではないですが、似たような機構を持つプロトコルを使ったことがあり、確かにこうやってトランザクション管理してたなぁ。あれはそういう意味だったのか。と今更ながらに関心しました。
URIの設計指針
第5章の「URI設計指針」には以下のように記載があります
- URIにプログラミング言語依存の拡張子を利用しない(.pl、.rb、.do、.jspなど)
- URIに実装依存のパス名を利用しない(cgi-bin、servletなど)
- URIにプログラミング言語のメソッド名を利用しない
- URIにセッションIDを含めない
- URIはそのリソースを表現する名詞である
上4つはなるほどなぁ~と読んでいたのですが「URIはそのリソースを表現する名詞である」はびっくりしました。だって、Ruby On Rails とか show
とか使ってなかった⁉って思ったからです。でもちゃんとそれについても触れていて Ruby On Rails は 2.0 移行から メソッド名をURIに含めなくなったそう。(そうだったのか。。。)
最近、どや顔でRESTに設計するならリソース名は動詞にすべき。みたいなことを言ってしまっていたので、読んでいて恥ずかしい気持ちになった。これからは「リソース名は名刺にすべき」とどや顔で言うようにします。
まとめ
ネット上の評価を見てると「内容が古い」という評価がいくつかありました。初版が2010年なので確かに情報は古いかなと思っいましたが書いている内容は今でも十分通用する内容なのかなと思います。Webの歴史やベースを知りたい人やWebサービスの設計ってどうやるんだろうって思っている人には一読の価値はあるのかなと思いますので皆さんも是非読んでみてください。
読んだ本
※ このリンクを張り付けるときに気づいたけど、購入が2020年の2月になってた。2年越しにようやく読み切ったのか。遅読にもほどがある。。。