入門WebAssembly(Rick Battagline 株式会社クイープ 株式会社クイープ)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 入門WebAssembly

入門WebAssembly


翻訳
監修

形式:
書籍
発売日:
ISBN:
9784798173597
定価:
3,850(本体3,500円+税10%)
仕様:
B5変・312ページ
分類:
プログラミング・開発

本書籍の他の形式を確認する

  • このエントリーをはてなブックマークに追加

Webアプリケーション高速化に対する
ソフトウェアからの解決策がここに!

本書は、
Rick Battagline, "The Art Of WebAssembly: Build Secure, Portable, High-Performance Applications"
No Starch Press,
の翻訳書です。

【本書の内容】
ハードウェアの拡張・拡充を追い風に、日々増加する動画や工夫を凝らした各種コンテンツ。WebAssemblyは、リソースを大量に消費するWebアプリケーションやプログラムのパフォーマンスを最適化し高速化する、コンパクトなテクノロジーです。

本書はそのWebAssemblyの基礎から、どのように動作するか、使用すべきケースと見合わせたほうがいいケース、そして開発手法と展開方法を、Web開発者がしっかり理解し実践できるような内容と構成で執筆されています。

とくに、作りっぱなしではなく、デバッグ方法やコンフリクトを起こした場合の検出プログラムの作成、他のアプリケーションとの相互作用などを通して、デプロイ後のメンテナンスにも筆を進め、実際に導入するうえで必須となる知識も紹介しています。

より快適なユーザー経験を届けたいWeb開発者にとって、必携の1冊となることでしょう。

【本書で取り上げるジャンル】
・WebAssemblyの基礎(動作とプログラミング)
・導入すべきケースとすべきではないケースの判断
・デバッグ
・必要となるであろうツールの自作
・導入後のトラブルシューティング

【読者が得られること】
・ブラウザやNode.jsへのWebAssemblyアプリ導入
・ブラウザデバッガでのコード検証
・メモリ操作
・オブジェクトのコンフリクト検出ツールの作成
・コンパイラの出力評価


本書では、WAT(WebAssembly Text)を紹介しながら、WebAssemblyがどのような仕組みで動作するのかを説明します。低レベルのテーマをいろいろ取り上げながら、Node.jsアプリケーションやWebベースのアプリケーションにおいてWebAssemblyがJavaScriptとどのようにやり取りするのかを少しじっくり見ていきます。
本書は最初の章から順番に読んでいくようになっており、それぞれの概念は次に説明する概念のベースになっています。
第1章

WebAssemblyとは何か、どのようなときにWebAssemblyを使うのが最適なのかを詳しく見ていきます。また、WebAssemblyの最も低レベルの仕組みを理解するためにWAT(WebAssembly Text)を紹介します。さらに、本書を読みながらサンプルを試してみるための環境を準備します。

第2章

WATの基礎を取り上げ、WebAssemblyにデプロイする高水準言語とWATとの関係を明らかにします。最初のWATプログラムを作成し、変数の使い方や制御フローといった基本的な内容について説明します。

第3章

WebAssemblyモジュールで関数を作成し、それらの関数をJavaScriptから呼び出す方法について説明します。また、これらの概念を具体的に示すために、素数を調べるプログラムを作成します。そして、テーブルからの関数呼び出しとパフォーマンスへの影響を調べます。

第4章

記数法、ビットマスク、2の補数など、WebAssemblyモジュールのパフォーマンスを改善するために利用できる低レベルの概念を学びます。

第5章

WebAssemblyには組み込みの文字列データ型がありません。この章では、WebAssemblyで文字列を表す方法と文字列を操作する方法を学びます。

第6章

WebAssemblyモジュールはJavaScriptなどの組み込み環境との間で大きなデータセットを共有するために線形メモリを使います。そこで、線形メモリを紹介し、線形メモリを使って組み込み環境との間で大きなデータセットを共有する方法について説明します。この章では、本書の残りの部分で使うオブジェクト衝突検出プログラムの作成を開始します。このプログラムでは、ランダムに動き回るオブジェクトを設定し、オブジェクトの衝突を検査します。

第7章

HTML、CSS、JavaScript、WebAssemblyを使って単純なWeb アプリケーションを作成する方法を学びます。

第8章

WebAssemblyでHTMLキャンバスを使って超高速なWebアニメーションを作成する方法を学びます。また、キャンバスを使ってオブジェクト衝突検出プログラムを改良します。

第9章

WebAssemblyが衝突検出のような計算量の多いタスクにいかに適しているのかを学びます。ChromeとFirefoxのプロファイラや他の最適化ツールを使ってアプリケーションのパフォーマンスの改善に取り組みます。

第10章

アラートやスタックトレースを使ってコンソールにログを出力するといったデバッグの基礎を取り上げます。また、ChromeとFirefoxのデバッガーを使ってWebAssemblyコードをステップ実行する方法も学びます。

第11章

WebAssemblyへの効率的なデプロイを目的として設計された高水準言語であるAssemblyScriptを取り上げ、WATを使ってAssemblyScriptを理解する方法と評価する方法を学びます。

第1章 WebAssemblyとは
1.1 WebAssemblyとは何か
1.2 WebAssemblyを使う理由
1.3 WebAssemblyとJavaScriptの関係
1.4 WATを学ぶのはなぜか
1.5 組み込み環境
1.6 今がチャンス

第2章 WATの基礎
2.1 これ以上ないほど単純なモジュール
2.2 WebAssemblyでのhello world!
2.3 WATの変数
2.4 条件付きロジック
2.5 ループとブロック
2.6 まとめ

第3章 関数とテーブル
3.1 WATから関数を呼び出す状況
3.2 is_prime関数を作成する
3.3 インポーする関数を宣言する
3.4 外部関数の呼び出しがパフォーマンスに与える影響
3.5 関数テーブル
3.6 まとめ

第4章 低レベルのビット操作
4.1 2進数、10進数、16進数
4.2 整数と浮動小数点数の演算
4.3 上位ビットと下位ビット
4.4 ビット演算
4.5 まとめ

第5章 WebAssemblyの文字列
5.1 ASCIIとUnicode
5.2 線形メモリ内の文字列
5.3 まとめ

第6章 線形メモリ
6.1 WebAssemblyの線形メモリ
6.2 JavaScriptのメモリオブジェクト
6.3 衝突検出
6.4 まとめ

第7章 Webアプリケーション
7.1 DOM
7.2 シンプルなNodeサーバーをセットアップする
7.3 1つ目のWebAssembly Webアプリケーション
7.4 16進数文字列と2進数文字列
7.5 まとめ

第8章 キャンバスの操作
8.1 キャンバスでのレンダリング
8.2 描画データを管理するWATモジュール
8.3 まとめ

第9章 パフォーマンスの最適化
9.1 プロファイラを使う
9.2 wasm-opt
9.3 パフォーマンスを改善するための戦略
9.4 WebAssemblyアプリケーションとJavaScriptアプリケーションを比較する
9.5 WATを手動で最適化する
9.6 パフォーマンスを記録する
9.7 benchmark.jsを使ったさらに高度なテスト
9.8 ‒print-bytecodeを使ってWebAssemblyとJavaScriptを比較する
9.9 まとめ

第10章 WebAssemblyのデバッグ
10.1 コンソールからデバッグする
10.2 アラートを使う
10.3 スタックトレース
10.4 Firefoxのデバッガー
10.5 Chromeのデバッガー
10.6 まとめ

第11章 AssemblyScript
11.1 AssemblyScriptのコマンドラインインターフェイス
11.2 AssemblyScriptでのhello world!
11.3 AssemblyScriptでのOOP
11.4 まとめ

第12章 おわりに

本書は付属データの提供はございません。

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

追加情報はありません。
正誤表の登録はありません。