はじめに
Webを支える技術 | 技術評論社を読んだので書評を投稿します(N番煎じですが)。
この記事では、本書の概要と、どのような点が学びになったのか、そしてどんな人におすすめできるかをまとめています。
- 対象読者: これから『Webを支える技術』を読もうか検討している方
-
この記事を読むとわかること:
- 本書の全体像と学べること
- 筆者から見た本書の難易度や感想
- 本書を読み終えた後の、次のステップ
1. 本書の3行まとめ
- RESTを軸にURI/HTTP/HTMLの基本的な仕様とWebアプリケーションの設計原則を体系立てて学べる一冊
- URIは“名詞”、HTTPメソッドは“動詞”というリソース思考を貫き、キャッシュ・認証・ステータスコードまで運用を見据えた要点がコンパクトにまとまっている
- 2010年に出版された本であり、ところどころに古い情報や技術もあるが、基本的な考え方や原則は今でも通用する
読むのにかかった時間: 合計 22時間
筆者の前提スキル:
- 専攻: 情報系(数理)大学院生
- 得意分野: 数理最適化, グラフ理論, アルゴリズム
- 勉強中の分野: ネットワーク、DB、OSなどコンピュータサイエンス全般
- プログラミング経験: Python, Julia, Goなど。きちんとしたWebアプリを作ったことはない
2. 本書を読んだ目的
- 開発の至る所で、DBやWeb技術、API周りの概念は登場するため、基礎事項を土台から固めたかったから。
- 言語化されたREST/URI/HTTPの設計原則を知っておきたいと考えたため。
3. 本書の構成と学びのハイライト
本書は全17章で構成されています。以下、特に学びが深かった箇所を紹介します。
-
第3章:REST──Webのアーキテクチャスタイル
- RESTとは、ULCODC$SS (Uniform Layered Code Code on Demand Client Cache Stateless Server)のこと
- Client-Serverの分離がされていて、ステートレスサーバーなら大体RESTだと思っていたが、6つもの原則があることを初めて知った
-
第4–5章:URIの仕様と設計
- URIは名詞でリソースを表す
- URIはアンダースコアではなくハイフン推奨(可読性・リンク下線・選択単位)。さらに、URLは実装から独立させるべき
- TimBL: “Cool URIs don't change”(URLは実装から独立させるべき、将来の変更に耐える命名と粒度を考える)
-
第6–9章:HTTPの基礎・メソッド・ステータス・ヘッダ
-
メソッドとべき等性/安全性:
- GET/HEAD=べき等かつ安全、PUT/DELETE=べき等、POST=非べき等。
- POSTの“万能さ”に甘えず、できることは適切なメソッドに割り振る原則はAPIの健全性を大きく左右する
-
メソッドとべき等性/安全性:
-
第15–17章:Webサービスの設計
- なるべくシンプルに保つ
- 困ったらリソースに戻って考える
設計はバランスをとる作業です。あちらを立てればこちらが立たず、ということがよくあります。
4. 感想
良かった点
-
設計原則が“短い文章”で背骨として持てる
RESTの思想・URIの流儀・べき等性・キャッシュ・エラー設計など、**現代の実装でも錆びにくい“考え方”**がコンパクトにまとまっていると思います。 -
歴史→原理→実務TIPSの緩やかな接続
序盤のWebの歴史やHTTPの進化も、現代の技術につながる文脈の理解に役立つと感じました。 -
HTTPメソッドの役割分担
POST/PUTの違いと使い分けをはじめとして、「適切なメソッドに役割を割り振る」という感覚が身についたと思います。
気になった点・注意点
-
解説は“仕様寄り”で、深掘り実装は最小限
読んでいて、ところどころドキュメントを読んでいるような感覚になりました。仕様の背景や原理まで深ぼるなら、自分で調べる必要があります。逆に自分で調べながら読むととても理解が深まると思います。 -
古い情報や技術もある
2010年出版の本なので、特にAtomやmicroformatsの話題は古いです。この辺りは、さらっと流し読みしても良いかもしれません。 -
かなりあっさりした解説
「Web技術についてきちんと勉強するならこれ」という評判を聞いて読み始めたのですが、実際に読んでみると、かなりあっさりした解説だと感じました。「これを読んでおけば安心」というには心許ないという印象でした。例えば、HTTPの詳細な仕様や挙動、TLS/セキュリティ、最新のWeb技術(HTTP/2, HTTP/3, OAuthなど)についてはほとんど触れられていません。**「Web技術の基本的な概念を押さえつつ、全体像をざっくり掴む」という目的には合っていますが、より深く学びたい場合は他の書籍やドキュメントを読む必要があります。逆に言えば、20時間程度で読めるので、「Web技術の基礎を短時間でざっくり掴みたい」**という目的には非常に合っていると思います。
5. 本書をおすすめしたい人
- Web技術や設計の土台を固めたい学生/若手エンジニア
- フレームワークの“お作法”は知っているが、何でそうなっているのかイマイチしっくりきていない方
6. 次に読みたい本
-
Web API: The Good Parts
- 理由: API設計の教材としてよくおすすめされるため、気になっています。より実践的な設計例を学びたいです。
-
Real World HTTP 第2版
- 理由: HTTP/2, HTTP/3, TLS, CDN, キャッシュ運用など現代寄りの技術についてきっちり書かれている印象です。
- 同著者のGoならわかるシステムプログラミング 第2版を読んで、とても面白かったため期待しています。
さらに、しっかりとしたWebアプリを自分で作ってみたいなとも思いました。
ひとこと総括
“Webを支える”というタイトル通り、今の実装に効く“設計の原則”を最短で手に入れるための良書。時代によらず変わらない基礎を固めるのに最適でした。