本ページはアフィリエイトプログラムによる収益を得ています
Amazon.co.jp ・本 (528ページ) / ISBN・EAN: 9784297145712
作品紹介・あらすじ
なぜWebシステムをうまく作ることができないのか?――本書は2010年に初版が発行されました。Webに携わるエンジニアだけでなく、Webマーケティング担当者にいたるまでWebの仕組みを根本から理解するための技術書として多くの方々に利用されました。それから10数年の月日が流れ、本書の特徴である技術の根本をていねいに解説するスタイルはそのままにアップデートを図りました。最新のWeb技術を取り入れて全面改訂です。さらに技術を学ぶ上でのさまざまな悩みを解消し、エンジニアとして成長していく手がかりをふんだんに盛り込みました。もちろんサンプルアプリケーションプログラムを試しながら理解を深めていく工夫もしています。本書によって本質をとらえるプロの技術力も得てください。
みんなの感想まとめ
Web技術の歴史や背景を丁寧に解説し、初心者から中級者まで幅広く理解を深められる内容が魅力的です。改訂版では最新の技術が盛り込まれ、特に採用言語がJavaからGoに変更されるなど、現代のニーズに応えて...
感想・レビュー・書評
-
WEB技術を網羅的に解説してくれているとてもいい本です。私はかなりの初心者なので後半はほとんど斜め読みでした。また読み返したいと思います。
詳細をみるコメント0件をすべて表示 -
ここ30年くらいでWebアプリケーション開発がどう変わっていったか、ざっくり理解できました。
私はインフラSEなのでコードはサラッと読み流してしまいましたが、それでも雰囲気は掴めてよかった。
Web技術は特に歴史(過去どのような課題があってどう克服してきたか)を学んだ方がよいと感じる分野だが、それが開発サイドから概要レベルで書かれた良い本。 -
5年前に初版を読みとてもわかりやすかった記憶があり、改訂新版が出ていると知り手に取った。
中身はかなり刷新されていて、採用言語もJavaからGoに変更。新しい技術の説明がかなりしっかり追加されていた。
この本の良さは、点の知識を線にするために、Webの歴史や背景から説明してくれる点。
SPAとサーバーサイドレンダリングの仕組み、RESTとGraphQLの違い、SSEやWebSocketの成り立ちなど、エンジニア歴5年の自分でも多くの学びがあった。 -
Webエンジニア志望なら開発する上で知ってれば有利なことや常識がたくさん書かれているので、絶対読んだ方がいい一冊です。Web開発の文化や歴史や技術を扱う上での一般的なグッドパターンが書いてある。新しい技術は古い技術を相互補完する関係であるので歴史は知っておいた方がいいよね。本自体は読みやすく要点もまとまっており理解しやすいです。3,600円でこのボリュームは安いと思います!
【メモ】
静的コンテンツは「あらかじめ用意されたものが提供されること」
動的コンテンツは「ユーザーの操作に応じてその場で生成されたものが提供される」
Webサーバーは「HTTPリクエストなどの静的コンテンツをHTTPレスポンスとして返す」
「サーバーサイド」が主要な機能を提供し、「クライアントサイド」がサーバーサイドの機能を呼び出してユーザーに提供する。ネットワークを隔てた別々のコンピュータ上で動作するのが一般的。
「スキーマ」は、「データ構造の定義」という意味
名前空間は、「1つのXML文書内で複数のスキーマを使用できる」
fortuneコマンドは、ランダムに格言や迷言を表示する
CGIは、アプリケーションを呼び出すための標準的な方法、HTMLを動的に生成する
Webアプリケーション開発の難しいところ
- ブラウザとサーバーを繋ぐHTTPがステートレスなプロコトルであること。
- 複数ユーザーによる同時利用を考慮しなければならないこと
SPA
- 主にブラウザの画面遷移に起因する操作性や応答性の悪さを克服したWebアプリケーションの一形態。
- 単一のWebページで構成され、HTML全体の再読み込みを極力廃して表示を切り替える
Ajax(エイジャックス)
- asynchronous JavaScript + XML
- XHTML と CSSを使用した標準ベースのプレゼンテーション
- Document Object Model を使った動的な表示とインタラクション
- XMLとXSLTを使ったデータ交換と操作
- XMLHttpRequestを使った非同期データ取得
- 全てを束ねるJavaScript
イベントハンドラ、イベントリスナ
- あるイベントが発生した時に実行すべき処理を、そのイベントと紐付けて記述する。そのイベントに関する処理だけを実現。
逐次処理
- 全てチェックして繰り返す。
イベントドリブン(駆動)プログラミング
- イベントループとイベントハンドラを分離し、その間のイベントという概念で結びつける設計
JSを利用すると、前節で説明したDOM操作とイベントハンドラを活用することで、HTMLの再読み込みなしに画面を動的に変更し、同じ画面内でUIが変化し、その場で編集できる。
フラグメント方式
- 断片化された情報やデータを扱う仕組み
トランスパイル
- あるプログラミング言語から別のプログラミング言語は翻訳すること
- AltJS
- TypeScript
API
- get ElementById:ブラウザが管理するDOMから、特定の要素を返す
- fetch:非同期でHTTPリクエストを送受信する
インターフェース
- 呼び出すための「名前」
- 与えるべき「パラメータ(引数)」
- 得られる「結果(戻り値)」
REST API
- クライアントとサーバが分かれてる
- ステートレスである
- キャッシュによって通信量が削減される
- インターフェースが統一されてる
- システム全体が階層化できる
- プログラムをダウンロードして実行できる
ステートレス性
- サーバーがその要求を処理するのに必要な情報が全てリクエストに入っていることを指す。サーバにステート(状態)を持たせない。
「安全」:読み取り専用
「べき等」:同じパラメータでその操作を何度か実行しても結果が変わらないこと
HTTPカスタムメソッド「:動詞」
クロスオリジン通信
- 自身の取得元とは異なるドメインに対してリクエストを送信すること
「オリジン」:リソースの提供元Webサイト
WebSocket
- 双方向、高頻度、大量の通信を実現するため、新たに作られたプロトコル
- リアルタイム性
- リアルタイム性を求めないなら「Server-sents Event」を選択しよう
WebSocketの課題
- 同時接続数の問題
- プロキシサーバの問題
- 負荷分散の問題
- 認証の問題 -
感想ブログを書きました。
https://blog.a-know.me/entry/2025/09/11/214923 -
入門といえど全部を理解したわけではないが、一通り目を通した。
今後読み直したい。 -
請求記号 547.48/Ka 67
-
自分がWebについて学んだベストセラー書籍の改定新版。ブクログの記録によると、2011年に初版を読んだよう。
改定新版というには、内容がかなり変わってる気もしなくはないけど(中には初版を参考といった記述も)、現在のWeb技術を学ぶうえでかなりよくまとまった本だと思った。
ただ、ちょっと記載ミスが多いかなという印象。間違ってる箇所はサポートサイトで更新されてるので、そちらも確認したほうがいいかもしれない。
https://gihyo.jp/book/2024/978-4-297-14571-2/support
P.43の『図2.22 Webシステムを実現するための技術』の図解がWeb技術についてよくまとまっているなと思った。ただ同時に、これだけ分厚い本なのに、解説されてない技術もまだまだあるのだなと思った。この本には書いてないけど、HTTP/3とかよく分かってないので、今後もみすえて学んだほうがいいのかなと。
Webの歴史についても書かれてあったのだけど、WWWの「膨大な情報を自由に参照したい」という課題は、1945年のヴァネヴァー・ブッシュという方の「Memex」というコンセプトにさかのぼると書いてあって驚いた。まるで、Webの世界を創造しているかのようなコンセプトだったそう。すごい。
後、ティム・バーナーズ=リーが最初に立ち上げWebサイトは、下記のURLでアクセスできるとか。
https://info.cern.ch/hypertext/WWW/TheProject.html
HTMLのソース見てみると、書き方は古いけど、今でも使われるタグばかりだった。ただ、<NEXTID>タグって何なのだろう?
XMLが「タグを自由に定義できるHTML」というように理解されてしまうこともあると書いてあったけど、自分も最初、XMLを知ったときにそういえばそうだったなと思った。確か、そういうふうに『日経ソフトウウエア』という雑誌に書かれてあったような気がするのだけど、あれはなんだったのだろう…。
参考Webサイトに、『とほほのWWW入門』<https://www.tohoho-web.com/>とあって、個人サイトなのに参考として書籍で紹介されるのはすごいなと思った。最近はみてないけど昔は確かによくお世話になった。
ncコマンドというコマンドは初めて知った。簡易的なHTTPサーバーを模倣できるそう。そんな便利なコマンドがあるとは…。もう少し使い方を調べてみようと思う。
『Server-sent events』ってよく聞くけど、ちゃんと機能を理解してないということに気づいた。HTTP接続を長時間、維持する機能とのこと。『Server-sent events』はサーバーから一方的にしか送れないようだけど、それでいいなら、『Server-sent events』のほうが簡単に実装できていいのかもしれない。
小森裕介の作品
本棚登録 :
感想 :
