付録: 参考リンク集

ここでは本編で取り上げられなかったJavaScriptの周辺ツールやライブラリなどをいくつか紹介します。 これらは時流に左右されて古くなりやすい情報であるため、本編からは独立した付録としてまとめています。

開発を補助するツール

JavaScriptを使った開発に役立つツールをいくつか紹介します。

コーディングスタイルの統一

複数人での開発において、改行の位置やインデントの幅など、ソースコードのフォーマットは統一します。 なぜなら、機能には関係ないスタイルの問題はレビューに余計な時間を使ってしまうためです。 また、使うべきでない古いイディオムやバグを生みやすい危険なコードの混入を防ぎ、品質を保つことも重要です。

これらのコーディングスタイルの統一は、一貫性を持って持続的におこなうことが重要です。 そのため、ツールを使って自動化することが推奨されます。

Prettier

PrettierはJavaScriptをはじめとする多くの言語に対応した汎用的なコードフォーマッターです。 設定ファイルがなくても利用できるため、導入しやすいのが大きな特徴です。

ESLint

ESLintはJavaScriptファイル用のLintツールです。 Lint とは、ソースコードファイルを静的解析して不適切なコードやコーディングスタイルに合わないコードを検知する仕組みのことです。 Lintをおこなうことで、チーム内でのコーディングスタイルを機械的に統一できます。

コードエディター

JavaScriptやHTML、CSSなどのコーディングに適したエディターを選ぶことで、開発の生産性を高められます。

VSCode

VSCodeはMicrosoft社がオープンソースで開発している無料のコードエディターです。 JavaScriptによってプラグインを書くことができ、さまざまな機能を追加できます。

Atom

AtomはGitHub社がオープンソースで開発している無料のコードエディターです。 VSCodeと同じようにプラグインによる拡張性が高く、GitHubと連携した機能が特徴です。

ブラウザの開発者ツール

多くのブラウザは開発者向けの組み込みツールを提供しており、本編で紹介したコンソールもその一部です。 その他にもJavaScriptコードをステップ実行できるデバッガーや、HTTPの通信ログなど、ブラウザごとにさまざまな機能があります。

パフォーマンスの改善

WebサイトやWebアプリケーションのパフォーマンスを計測、改善するためのツールを紹介します。

PageSpeed Insights

PageSpeed InsightsはGoogleが提供するWebパフォーマンス計測ツールです。 計測したいページのURLを入力すると読み込みにかかっている時間や、改善できる項目を提示してくれます。

WebPagetest

WebPagetestは、ブラウザを利用したWebパフォーマンス計測ツールです。 さまざまな条件下のブラウザでウェブサイトにアクセスし、パフォーマンスを計測できます。 BSDライセンスの下でオープンソース化されており、任意のサーバーにインストールして実行することもできます。

Lighthouse

LighthouseはGoogleが提供するWebページの分析ツールです。 Webパフォーマンスだけでなく、アクセシビリティやSEOなどの観点からも分析し、そのスコアを表示します。 Chromeブラウザの開発者ツールとして組み込まれていますが、npmでパッケージをインストールすればCLIとしても実行できます。

JavaScriptの実行プラットフォーム

JavaScriptはWebサイトを作るためだけの言語ではありません。 いまでは多くのプラットフォームを超えた共通言語として、JavaScriptやその周辺のエコシステムは発展しています。 JavaScriptを使ったプログラムを実行するためのいくつかのプラットフォームについて紹介します。

Webサイトを公開する

WebサイトやWebアプリケーションをインターネットに公開するためには、どこかのWebサーバーでホスティング(公開)する必要があります。 ここではホスティングを機能として提供し、簡単にWebサイトを公開できるいくつかの ホスティングサービス を紹介します。

GitHub Pages

GitHub Pagesは、GitHubが提供する無料のホスティングサービスです。 GitHubのリポジトリをWebページとして公開して、リポジトリ内に配置したHTMLやCSS、JavaScriptなどの静的ファイルを配信できます。

Firebase Hosting

Firebase Hostingは、GoogleのFirebaseプラットフォームが提供するホスティングサービスです。 CLIを使ったシンプルなデプロイと、小規模の利用なら無料で利用できることが特徴です。

Netlify

Netlifyも無料で利用できるホスティングサービスです。 GitHubやBitBucketのようなGitリポジトリサービスと連携していて、リモートリポジトリにpushするだけで自動的にデプロイできるのが特徴です。

Node.jsをサーバーレスに実行する

AWS LambdaやGoogle Cloud FunctionsのようなFunction as a Service(FaaS)と呼ばれる実行プラットフォームがあります。 FaaSではNode.jsのサーバーを用意しなくても関数単位でNode.jsのスクリプトを実行できます。 FaaSにJavaScriptの関数をデプロイすると、クラウド上で管理されているNode.jsサーバーにホストされ、それぞれの関数にエンドポイントが割り当てられます。

AWS Lambda

AWS LambdaはAmazon Web Services上で提供されるサーバーレスNode.js実行環境です。

Google Cloud Functions

Google Cloud FunctionsはGoogle Cloud Platform上で提供されるサーバーレスNode.js実行環境です。

デスクトップアプリケーションを作る

JavaScriptを使ってWindowsやOSX、Linuxなどのデスクトップ環境で動作するGUIアプリケーションを作ることもできます。

Electron

ElectronはGitHub社によって開発されているオープンソースのデスクトップアプリケーションフレームワークです。 HTMLやCSS、JavaScriptを使ったWebアプリケーションをChromiumブラウザと一緒にパッケージ化して配布可能な実行ファイルを作成できます。

NW.js

NW.jsはIntel社によって開発されているオープンソースのデスクトップアプリケーションフレームワークです。 Electronと同様にChromiumブラウザをベースにしたアプリケーションを開発できます。 NW.jsはブラウザの中からNode.jsの開発エコシステムを直接利用できるようにしているのが特徴です。