『自分のペースでゆったり学ぶ TCP/IP』を読了

[改訂新版] 自分のペースでゆったり学ぶ TCP/IP

3分間ネットワーク基礎講座』シリーズの網野衛二氏が、『3分間ネットワーク基礎講座』よりもさらに初心者向けにやさしく書いた入門書。

タイトルには「TCP/IP」とあるけど、物理層からアプリケーション層まで、OSI参照モデルの全レイヤーを扱っている。1冊を通して読むことで、TCP/IPでデータがネットワーク上を流れる際の「流れ」を概観することができる。

具体的には、以下のような流れ(HTTPの場合)。

  1. クライアントがHTTPのプロトコルに基づいたリクエストを発信する
  2. トランスポート層でリクエストに宛先と送信元のポート番号がつけられ、スリーウェイハンドシェイクのデータが用意される
  3. インターネット層でデータに宛先と送信元のIPアドレスがつけられ(IPパケット)、LAN内のルータに送信される
  4. インターフェイス層で宛先と送信元のMACアドレスがつけられ(イーサネットフレーム)、宛先のルータに送信される
  5. ルータにデータが届くと、イーサネットヘッダが外される
  6. ルータはインターネット層でIPヘッダを確認し、自分が宛先でない場合はルーティングを行って新しいMACアドレスをつけ、別のルータに転送する
  7. 宛先のルータにデータが届くと、イーサネットヘッダ・IPヘッダが取り外され、スリーウェイハンドシェイクのレスポンスを返す
  8. スリーウェイハンドシェイクが完了すると、サーバはリクエストされたデータを返す

逆に言えば、上に書いたような流れがすでに理解できている人は読む必要がない。第6章で流れがまとめられているので、読むかどうか迷っている人は、まず第6章を読んで、知っていることしか書いてないようなら別の本を読んだほうがいい。また、プロトコルやヘッダの実際については書いていないので、具体的なヘッダの中身等が知りたい人にも向かない。

ターゲットがきっちり定まってて、対象読者なら読めば学びがあるし、読む必要が無い人は読まずに済ませられるという点で、かなり良書だと思う。

また、随所に「○○を忘れてしまった人はxxページ参照」というリンクがちりばめられているので、ゆっくり読んで前に学んだ内容を忘れてしまっても大丈夫。本の作りは、技術書というよりも学習参考書に近い。

『AngularJSアプリケーション開発ガイド』を読了した

AngularJSアプリケーション開発ガイド

AngularJSの開発メンバーが書いているだけあって、「なぜ、AngularJSを使うのか」という部分の動機付けはばっちり。また、2章まで読めばAngularJSの全体像がつかめる構成になっていて、ここも非常に良い。一方、フロントエンド技術という移り変わりの激しいものを扱っている書籍という限界から、2014年12月現在、既に古くなっている部分も結構ある。第3章のyeoman関係は、現在では全く役に立たない。

そういった事情から、良い点もあるのだけど、他人にお勧めはしづらい。会社に1冊置いておいて、AngularJS入門者にはまず2章まで読ませ、その後『AngularJSリファレンス』を渡す、といった使い方が良いのでは。

ちなみに、本書の改訂版(?)である『AngularJS: Up and Running』も既に発売されている。本書の内容をアップデートし、さらに加筆したものらしい(ページ数が200→300に増えている)。