iCARE の若手エンジニアにおすすめの本を紹介するシリーズ その4. Web を支える技術 | Dev Driven 開発・デザインチーム iCARE の若手エンジニアにおすすめの本を紹介するシリーズ その4. Web を支える技術 | 働くひとと組織の健康を創る iCARE

BLOG

iCARE の若手エンジニアにおすすめの本を紹介するシリーズ その4. Web を支える技術

2022/03/22

どんな本

インターネットを旅するために地図の読み方を教えてくれる本

おすすめする理由

あなたにとってインターネットとはなんでしょうか? Twitter ? Instagram ?

検索結果はインターネットですか?ウェブアプリはどうでしょう?

Google Map や食べログはインターネットっぽいですね。会社で使っている勤怠管理システムはインターネットですか???

Web開発者という視点からすると、これらはすべてインターネットというメタバースの上に構築されたメトロポリスの一部であり、ぼくたちが日々開発しているアプリも閉じているものではなく、巨大なインターネットというメタバースの一部として世界に開かれているものなのです

ただし、インターネットはメタバースと言っても VR のようにわかりやすいインターフェイスがあるわけではありません。この本を通じて読み解き方を学ぶことで、より深くこの世界を冒険することができるようになるでしょう

基礎知識

インターネットを旅するために必要な知識はシンプルにふたつ「 URL 」と「 HTTP 」です。 URL は住所で HTTP はその住所にアクセスするための道路と考えればイメージしやすいかもしれません。

もう少しイメージするためにブラウザの開発者ツールを使ってネットワークを見てみましょう。 URL はすぐ見つけられますね。 HTTP は少しわかりにくいですが、リクエストとレスポンスに書いてある内容と思えばだいたい正しいです

まずはあなたがよく使うニュースサイトにアクセスしてみてください。さまざまなドメインに対して大量のリクエストが飛んでいると思います。同様にあなたが日々開発しているシステムにアクセスしてみて下さい。自分が思っている以上のリクエストが発生しているはずです

このようにインターネット上に存在しているリソースを組み合わせて Web サービスは構築されています。使われている技術がどんなに最新だろうと、仕組み自体は変わらずにシンプルです

読み方

まず最初に P53 の「5.1. クールな URI は変わらない」をしっかりと読んでください。少し難しいですが、オリジナルの 日本語訳 にも目を通すといいでしょう。そしてなにより、 12年前の本に書かれたURLに今アクセスできる という奇跡に驚きましょう

その後に読み込むべきは「第2部 URL 」と「第3部 HTTP 」です。実際に自分が作っているサービスで行われているリクエストと見比べながら読むと理解が進むでしょう

「第4部 ハイパーメディアフォーマット」は読み飛ばしても構いません

「第5部 Webサービスの設計」はリソースとはなにか、と言うことに意識して読むといいでしょう。原則として URL は「ユニークなリソース」を指し示します。「ユニークな」というのはどう言うことでしょうか?簡単にいうと特定可能な = 定冠詞をつけられるリソース、またはそのコレクション、になります

例えば「購入者」だけでは誰なのか特定不可能です。代わりに「購入者Aさん」は特定可能ですね。「最新の購入者」も特定可能です(※)。このように URL が特定のリソースを指し示すことが保証されていることで、さまざまなドメインを横断したたくさんのリソースを組み合わせて Webサービスを作ることができるわけです

※あえて特定不可能なリソースを返す URL を生成することもあるでしょうし、それ自体に問題はありませんが、原則を外れていることが利用者・提供者間で共有されている必要があります

この 3つの章をしっかりと理解できれば旅の準備は万端です。 atom や mircoformat などのセクションは読み飛ばして大丈夫(これらはセマンティック・ウェブという文脈で、別の意味で重要です)ですし、それ以外の章はこの 3つの章をより深く理解するための補助という位置付けで読み込むのがいいでしょう

最後に

インターネットの原理はとてもシンプルですが、それらをどう組み合わせてさまざまなサービスが構築されているかを紐解けるようになると、その表現力の豊かさに驚くことでしょう

また、これら仕組みを知っているだけでインターネットを利用するときの解像度が段違いに高くなります。この本を読んで手にした地図を片手にインターネットを冒険してたくさん経験を積みましょう。そして、サービスの開発者に留まらず、インターネットそのもののコントリビュータになってください