Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プロになるためのWeb技術入門

Avatar for m-narin m-narin
February 21, 2025
23

 プロになるためのWeb技術入門

[改訂新版]プロになるためのWeb技術入門という本の感想と紹介になります。

Avatar for m-narin

m-narin

February 21, 2025
Tweet

Transcript

  1. @X-bit, Inc. All rights reserved 
 Index 1. 自己紹介 2.

    目的 3. 従来型のWebアプリケーション 4. SPAへの進化 5. Web API 6. まとめ
  2. @X-bit, Inc. All rights reserved 
 自己紹介 ❏ 那仁 満徳(なりんまんど)

    ❏ 23卒でWebエンジニア3年め ❏ 2024/7月からmetricsチームにJoin✨ ❏ 学生時代プログラミングスクールのメンターをしていた ❏ 東京足立区→神奈川県川崎→埼玉県川口 ➢ https://www.notion.so/xbit/_Mando-Kutsuna-Narin-a5346b22a1924217a093be82f8c103fd
  3. @X-bit, Inc. All rights reserved 
 - 業務をやる中、Web技術の知識をさらに補強したいと思ったのがきっかけ - Web技術の歴史を理解できる

    - サンプルアプリを通して歴史を追随できる [改訂新版]プロになるためのWeb技術入門という本の紹介 4 ¥3,960 511p
  4. @X-bit, Inc. All rights reserved 
 6 使用ツールの理解 ブラックボックス化されがちなフ レームワークやライブラリが何を

    実現しているのか?楽にしてくれ ているのか?を理解して利用でき る。デバッグで見るべきポイントが 分かるようになる。 新技術のキャッチアップ 技術の歴史を大まかに把握する ことができる。過去の積み重ねで 作られている新技術も、違いだけ を把握すれば良くなる。
  5. @X-bit, Inc. All rights reserved 
 8 リクエスト GET /todos

    レスポンス HTTP/1.1 200 OK … <!DOCTYPE html> … クライアント サーバー レンダリングエンジンによってtodo一覧が描画される
  6. @X-bit, Inc. All rights reserved 
 9 GET todos todo一覧の取得

    POST todo todoの追加→GET todos HTMLを生成するのはサーバー側の仕事だった 従来のWebアプリケーションの問題点は画面遷移が多く、遅いこと 項目が追加されほんの少しの変化しかないのに画面全体を取得&描画し直す必要があった 2000年頃
  7. @X-bit, Inc. All rights reserved 
 11 Ajaxの登場 - HTMLで全体を再読み込みせずに、画面の一部だけを更新

    - デスクトップアプリケーションと同等の操作性を実現 ドラッグ操作を検知して地図を動かし、ずれた分だけを取得 →JavaScript 2005年頃
  8. @X-bit, Inc. All rights reserved 
 12 JavaScript - ブラウザを制御するための言語としてNetscape

    Navigatorに搭載されたのが起源 - ブラウザに内蔵されているJavaScriptエンジンによって実行 - DOM操作やイベント処理ができる getElementById 1995年
  9. @X-bit, Inc. All rights reserved 
 13 JavaScript - 当初は互換性の問題があった。MicroSoftのJScript。ブラウザ戦争

    - Netscape社がEcma InternationalにJavaScriptを提出し、標準化が進められる - ECMAScript - Chromeに搭載されたV8が大幅な高速化を実現 2008年
  10. @X-bit, Inc. All rights reserved 
 14 JavaScriptの台頭により、一つの画面上で非同期通信ができるようになった - HTTPがAPI化していき、JSONを返すように

    - XMLよりシンプル しかし、純粋なSPAにも問題が - 検索エンジンと相性が悪い - JavaScriptが実行されないと初期のHTMLは空のまま - 初期表示の重さ - 多くのJavaScriptコードを配信サーバーから読み込む必要がある - 特にtoCサイトでは数秒の遅延でユーザーの離脱が無視できない
  11. @X-bit, Inc. All rights reserved 
 16 History API -

    当初のSPAでは単一のURL上でフラグメント(#)を利用して異なるビューを管理 - HTML5からHistory APIが登場 - アドレスバーのURLや履歴を操作し、擬似的な画面遷移を実現 - JavaScriptで本来の画面遷移を禁止しルーティング→e.preventDefault(); - 再読み込みせずURLを切り替え、DOM操作で表示内容を更新 - 特定のページをブックマークできたり、「戻る」ができるようになった - Vue Routerなどのライブラリで利用されている 2014年
  12. @X-bit, Inc. All rights reserved 
 17 SSRへの回帰 - 初期表示のみ、HTMLをサーバーで生成するようにした

    - 初期表示以降は、SPA(with History API)と同じ動作をする - 画面描画の処理がクライアントとサーバーに分散して面倒だが、サーバーで JavaScriptを扱えるようになってきて流行した - Next.js, Nuxt.js History APIとSSRの合わせ技によって →検索エンジンと相性が悪い問題と初期表示の重さ問題に対応💡
  13. @X-bit, Inc. All rights reserved 
 19 初期のネットワークごしAPI - 離れた場所の繋がっているコンピュータプログラムを実行する

    - 遠隔呼び出しをし合う分散システムは昔から研究されてきた - RPC, CORBA - Web上でRPCを実現するSOAPが登場 - HTTP上でXMLでやり取り 2000年頃
  14. @X-bit, Inc. All rights reserved 
 20 RESTの登場と論争 - SOAPは複雑で各社独自の仕様をどんどん作っていってしまう

    - そんな中Web APIの一つの指針を示したのが、RESTというアーキテクチャ - Roy Fieldingが学生時代に考案 - シンプルさが受けて徐々に広まっていく RESTをWeb APIに当てはめて具現化したものをリソース指向アーキテクチャ - URLによってリソースを示す=アドレス可能性 - リソース同士辿ることができる=接続性 - 何をしたいかをHTTPメソッド、操作の結果をHTTPステータスで表現=統一インターフェース - 一度でほしい情報が手に入る=ステートレス - サーバーに状態を持たせないことで台数を増やせる 2000年
  15. @X-bit, Inc. All rights reserved 
 23 GraphQL - HTTPをAPIコールの窓口のみとして使っている

    - リクエストボディにクエリを書くため全てPOSTメソッドを使用 - RPCに近いスタイル - Restの穴を補完するために、Rest以前のスタイルが再登場 - 代替するものではなく相互補完するもの
  16. @X-bit, Inc. All rights reserved 
 25 - WWWの始まり -

    HTMLの歴史 - ネットワーク - セッションとユーザ管理(Cookieなど) - サーバープッシュ技術(リアルタイム通信) - Server-sent events - WebSocket - セキュリティ - 文字コード - 構造化データ - CSV, XML, JSON, YAML - etc,,,
  17. @X-bit, Inc. All rights reserved 
 26 使用ツールの理解 ブラックボックス化されがちなフレーム ワークやライブラリが何を実現している

    のか?楽にしてくれているのか?を理 解して利用できる。デバッグで見るべき ポイントが分かるようになる。 新技術のキャッチアップ 技術の歴史を大まかに把握することが できる。過去の積み重ねで作られてい る新技術も、違いだけを把握すれば良 くなる。 ❖ SSRを使うべき?SPAで十分? ➢ 商業アプリなら、SEO対策と初期表示の重要性からSSRを選択すべきかな? ➢ 業務系アプリであれば、SEOと初期表示のデメリットが小さいのでSPAのシン プルな構成でアリかも? ❖ GraphQLってどんなものだろう? ➢ Restのデメリットを補完するもの。HTTPをAPIコールの窓口としてのみ利用 まとめ