『超速! Webページ速度改善ガイド』を読んだ

超速! Webページ速度改善ガイド ── 使いやすさは「速さ」から始まる (WEB+DB PRESS plus)

ここ最近、仕事でWebサイトのパフォーマンス改善をしているので、最新のベストプラクティスを押さえるために読みました。

パフォーマンス改善については、『ハイパフォーマンスWebサイト』という古典的名著があり、ここ最近の本としては『Webフロントエンド ハイパフォーマンスチューニング』などがあります。

パフォーマンス改善には、計測(ボトルネックの特定)=>改善というステップが存在します。本書は、計測方法や改善の方策が、具体的にわかりやすく解説されているのが特徴です。また、章立てが 基礎知識 => 調査と改善 で統一されているため、効率よく知識を身につけることができます。

Chrome DevTools はパフォーマンスの改善には欠かせないツールですが、高機能なぶんどのような機能があるか把握するのが大変です。本書では、ネットワーク・スクリプティング・ペインティング・メモリ等、様々なシーンでDevToolsを使って計測をする方法が解説されています。

また、改善方法も、小さなサンプルコードが載っているため、すぐに導入しやすいです。

Webサイトのパフォーマンスに悩んでいる人が、最初に読む本としてオススメ。


『React入門』を読んだ

React入門 React・Reduxの導入からサーバサイドレンダリングによるUXの向上まで (NEXT ONE)

『React入門』は、JavaScriptの定番ライブラリ、React.jsの入門書です。

Reactの入門書は他にもありますが、本書が特に優れているのは、実務で使う上で必要なポイントが書かれている点です。

Reactはそれほど機能の多くないビューライブラリで、Reactと他のライブラリを適宜組み合わせることで、リッチなユーザインターフェースを実現します。

しかし、従来の入門書の多くは、React本体の入門で終わっています。ある程度の規模になると必要になる状態管理ライブラリや、リッチなインタフェースを実現するためのUIライブラリ等、Reactは本体以外にも学ぶべきことが色々あります。

本書では、他の入門書で扱っているようなReact本体の入門は前半3分の1くらいで、その後はReduxやUIライブラリ、ユニットテスト、作ったアプリケーションの公開方法(GitHub PagesとFirebase)からサーバサイドレンダリングまで、より実践的なトピックを手厚く紹介しています。

Vue.jsやAngular等、モダンなJavaScriptフレームワークの経験者であれば、本書でいきなりReactに入門できると思います。そうでない人は、もう1冊他の入門書を挟んでから本書を読んだ方が良いかもしれません。

Webフロントエンド技術を扱った本の宿命として、本書もそれほど賞味期限は長くないので、早めに読むのがオススメです。

Learning Vue.js 2 を読んだ

Learning Vue.js 2

Vue.jsは公式ドキュメントが充実していて、かつ、完璧な日本語訳もされているので、Vue.jsの入門書はそれほど必要ではありません。また、vue-cliが生成するアプリケーションの構造を見ると、ライブラリの組み合わせ方や設定方法などもわかります。

しかし、実際のアプリケーションを作りながらステップバイステップで作るチュートリアルは公式では提供されていません。ブログなどに書かれた簡単なチュートリアルは見つかりますが、それなりの規模のアプリケーションをテストまで含めて書いていく、というものになると、数は少ないでしょう。

本書『Learning Vue.js 2』はそのようなユースケースにぴったりな本です。本書の基本的な構成は、Vue.jsを触り始めるところから始めて、vue-cliによるスキャッフォルディング、ディレクティブの解説、コンポーネント、プラグイン、テスト、デプロイと、Vue.jsアプリケーションを作るのに必要な事項が一通り網羅されています。これらの事項を、「ショッピングリスト」と「ポモドーロタイマー」の2つのアプリケーションを作る過程で学ぶことができます。

英語で書かれた本ではありますが、使われている語彙や文法はとても易しいです。著者がドイツ人で、おそらく英語ネイティブではない、というのが良い具合に作用していそうです。Vue.jsの入門書としてだけでなく、英語で書かれた技術書にチャレンジしてみたい方にもおすすめです。

『ポートとソケットがわかればインターネットがわかる』を読んだ

ポートとソケットがわかればインターネットがわかる――TCP/IP・ネットワーク技術を学びたいあなたのために (Software Design plus)

Geekなページ のあきみち氏による、TCP/IPの入門書。情報処理技術者試験対策本のような、無味乾燥な知識をただ覚えるための本ではなく、ネットワークの初歩的な知識と、それを実際に何かに使うことの橋渡しをしようとする意図が感じられる。

具体的には、この手の入門書には珍しく、本書にはソケットを利用したプログラムのサンプルが載っている(※)。その他、ネットワークコマンドの使用例も記載されていて、手を動かしながら学ぶことができる。

挿絵も的確で、本文だけではわかりづらいところでも理解の助けになっている。

ネットワークを初めて学ぶ人だけでなく、自分のように、ネットワークに苦手意識のあるソフトウェアエンジニアが読んでも得るものは多いと思う。

※ただし、C言語で書かれているので、厳しいという人もいそう。Working With TCP SocketsというRubyを使ってソケットプログラミングを行う入門書もあるけど、こっちはこっちで英語なのがつらいという人が多いかも。

モダンJavaScriptの練習に:『Electronではじめるアプリ開発』

Electronは、Webの技術(HTML+CSS+JavaScript)を使用してデスクトップアプリケーションを構築するためのフレームワークです。Atom、Visual Studio Codeといったモダンなエディタや、Slackのデスクトップ版などに利用されています。ChromiumというChromeのベースとなっているブラウザを使用することで、Windows/macOS/Linuxといった様々なOS上で動作する、クロスプラットフォームなデスクトップアプリケーションを構築することができます。

本書では、ES2015 + Reactという組み合わせでアプリケーションを構築していきます。ES2015やReactについての詳しい解説は無いので、あらかじめES2015のクラス構文やアロー関数式、Reactの基本的な使い方を身に着けておいたほうが読みやすいでしょう。

ES2015については『改訂新版JavaScript本格入門』がおすすめです。Reactについては、公式チュートリアルをやっておけば大丈夫でしょう。
以下のようなソースを見て、だいたい何をやっているかわかればOKです。

本書には、様々なライブラリを活用して、手早く高機能なアプリケーションを構築する方法が記載されています。また、各章はチュートリアル形式になっているので、実際に手を動かしながら学ぶことができます。Electronに興味がある人だけでなく、モダンなJavaScriptアプリケーションの組み方について理解を深めたい人にもおすすめできる内容です。