メインコンテンツまでスキップ

読み物:Webを支える技術

山本陽平さんの「Webを支える技術」を読んだ。

4年くらい前にウェブアプリの作り方とかを勉強しているときにどこかのサイトでおすすめされていて wishlist に入れていた。ためになる内容もあったが、さすがに2010年に出版された本となると内容が現在の状況と乖離してくる。wishlist に入れた当時に読まなくてよかったと思った。技術書3割、歴史書7割くらいの認識で読むのが良いと思う。HTTP の基本的な仕組みは非常に勉強になった。

今でもちらほらウェブ制作入門サイトや動画でおすすめされているみたいだが、今のウェブをある程度知っている人でないと読んで制作に役立てるのは厳しいと思う。最近ウェブの勉強を初めて XHTML とか Microformat とかを頑張って覚えようとしている人を想像するとつらい。最も気になったのは下記の部分

リソースを設計する際にとても大切なことがあります。それは Web サービスと Web API を分けて考えないことです。両者は人間用のインタフェースとプログラム用のインタフェースという違いこそあれ、どちらも同じ Web 技術(URI、HTTP、ハイパーメディアフォーマット)を使ったインタフェースです。 Web サービスで提供するものも、 Web APIで提供するものも、結局は Web 上にあるリソースなのです。同じ技術を使って同じアーキテクチャのもとで作られているのに、なぜ両者を分ける必要があるのでしょうか。このため第5部では特に断りのない限り、 Web サービスという言葉を Web API も含めた意味で使います。

(Kindle 版 p.429/674)

最後にもう一度書きますが、 Web サービスと Web API を分けて考えない、これが、リソース設計で最も重要な考え方です。

(Kindle 版 p.537/674)

当時はそう考えられていたのか、と思った。今ウェブは Headless architecture や Jamstack に向かっている気配があるがこうした潮流はその分野にある程度馴染んでないと情報として入手しづらいように感じる。僕も最初 Django の勉強をしていたときは GET は基本的に HTML を返すものだと思っていて(公式のチュートリアルがそういう設計になっている)、Web API の主流が JSON を返すということを知るのは数年後だった。

情報収集においては cutting edge の情報がいかに面白くても well established な情報を知りに行くほうが収穫が多い気がしていて、そうした情報を見に行くことを最近は意識しているのだが、上に書いたような落とし穴も普通にあるので怖い。詳しい人から情報をもらうというのがおそらくは最も良いのだろうが、詳しい人が周りにいない人は自分で調べる必要がある。そこの穴を AI チャットボットが埋めていってくれる気がする。

その他感想

  • 結局 REST とは何なのかいまいち理解できなかった。今は REST の設計思想はデフォルトっぽいし、僕のようなフレームワークに頼るしかない凡人は理解する必要もなさそう。

  • 付録にステータスコード一覧と使用場面が書かれていて、時代の流れを感じた。当時はレスポンスを細かく分ける必要があったのだろうか。GraphQL の人気を見てるとステータスコードはますますレガシーになっていきそう。

  • (本の内容とは関係ないが)日本語のウェブ制作入門サイトで今でもやたら jQuery 推してるの謎なんだよなあ。

  • 読んでいて思い出したもの