doT.jsはNode.jsとブラウザ用のJavaScriptで使用されるテンプレートエンジンです。この記事ではdoT.jsを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。
doT.jsとはNode.jsとブラウザ用のJavaScriptで使用されるテンプレートエンジンです。最速で簡潔なJavaScriptテンプレート関数を求めて作成されました。doT.jsは「underscore.js」やjQueryプラグインである「jQote2」などから影響を受けて開発されました。特徴として「非常に高速で軽量」「handlebarsに文法が似ている」などが挙げられます。
テンプレートエンジンとはテンプレートとなる部分とデータモデルで表現される入力データを合成し、成果ドキュメントを出力するソフトウェアです。デザイン部分とロジック部分を切り離して作業できるといった利点があることから重宝されております。テンプレートエンジンの主な構成要素として『データモデル』『ソーステンプレート』『成果ドキュメント』が挙げられます。
テンプレートエンジンの役割や種類などについて解説された記事はこちら>>
JavaScriptとはネットスケープコミュニケーションズ社によって1995年に誕生したプログラミング言語の一種でその中でもオブジェクト指向スクリプト言語に区分されます。主な目的として動的な機能をWebページに生成するためのプログラミング言語として開発されました。Webサイト、Webアプリ、ゲームなど様々な用途に活用できるため注目を集めております。
名称にJavaが含まれるためJavaの仲間と誤解を生むこともありますがJavaScriptは全く異なるプログラム言語です。開発当時サン・マイクロシステムズ社が開発したプログラミング言語『Java』が大きな注目を集めていたことや同社との業務提携を行った背景もありJavaにちなんだ名称が付けられました。JavaScriptフレームワークの代表的な種類としてjQuery、AngularJS、Vue.jsなどが挙げられます。
Node.jsとは2009年にライアン・ダール氏によって作成されたJavaScript向けのサーバサイド開発用の実行環境です。JavaScriptを用いてサーバサイド開発を行う際の代表的な開発用実行環境として人気を集めております。Node.jsを活用することによって他のサーバーサイド言語では実現できなかったアクセスされたURLを識別し、URLごとにユニークな要素を表示させるなど、データベースで行う作業も合わせて実装出来るようになりました。他にもNode.jsは特徴として『リアルタイム通信』『シングルスレッド』『ノンブロッキングI/O方式』などが挙げられます。Node.jsはRubyの『Event Machine』や Pythonの『Twisted』のシステムに影響を受けて、同様の設計で開発されました。
doT.jsは2011年1月にローラ・ドクトロワによって開発されました。誕生のきっかけとなったのはjQueryプラグインである「jQote2」で、文字列の連結を使用し、「with」ステートメントを回避することで速度を壊した最初のエンジンでした。また「underscore.js」からも影響を受けているようです。Githubのリリース記録によると初版の誕生から「doT.js 1.0.1」の公開まで2年程掛かっていることが分かります。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2011年 | 「doT.js 初版」リリース |
2013年 | 「doT.js 1.0.1」リリース |
2017年 | 「doT.js 1.1.0」リリース |
2020年 | 「doT.js 2.0.0-beta1」リリース |
doT.jsの特徴を見ていきましょう。
doT.jsは非常に高速で軽量という特徴があります。他テンプレートエンジンである「Handlebars」や「jsRender」などと速度比較をされたデータによると「Chrome」や「firefox」といった主要なブラウザで一番高い数値が出ているようです。
doT.jsはhandlebarsに文法が似ているという特徴があります。handlebarsはシンプルで分かりやすいことからJSユーザーに人気を集めております。そんな簡単で学習コストが低いという特徴のあるツールと文法が似ているということでdoT.jsも使いやすさに定評があります。
handlebarsの特徴やMustacheとの違いなどの基礎知識について解説された記事はこちら>>
doT.js以外の代表的なJavaScript環境向けテンプレートエンジンを見ていきましょう。
EJSとは主にJavaScriptで使用されるテンプレートエンジンです。EJSを利用することでHTMLをヘッダーやフッターで分割して管理することやHTML内でループ処理を書いて簡単に記述できるなどを実現できます。JavaScriptを使用してHTMLマークアップを生成できるシンプルなテンプレート言語と捉えると分かりやすいでしょう。特徴として『JavaScriptのようにHTMLを書ける』『シンプルで分かりやすい』『レイアウト機能がある』などが挙げられます。
Nunjucksとは主にJavaScriptで使用されるテンプレートエンジンです。NunjucksはEJSと同じHTMLベースの構文であり、JinjaというPython向けテンプレートエンジンに影響を受けております。それもありNunjucksはPythonで記述することも可能です。FireFoxブラウザを開発、運営するMozilla製であることでも知られております。特徴として『高性能で高速』『強力な機能』『シンプルな記述』などが挙げられます。
Nunjucksの公式サイトはこちら>>
Nunjucksの特徴や名前の由来などの基礎知識について解説された記事はこちら>>
Pugとは主にJavaScriptで使用されるテンプレートエンジンです。Pug(旧Jade)はHTMLを書くためJavaScript向けに誕生しました。影響を受けたテンプレートエンジンは「Haml」です。特徴として『記述をCSSと統一できる』『コンポーネント化できる』『ファイルを分割できる』などが挙げられます。
Edge.jsとは主にJavaScriptで使用されるテンプレートエンジンです。Edge.jsを使用することでHTMLを効率よくコーディングすることができます。また「Node.js」と「.NET」の各プラットフォームにて相互に使用できる環境を実現します。C#からでもNode.js経由で使用できるなど汎用性が高いです。特徴として『レイアウト機能の完備』『Node.js で.NETライブラリが使用できる』『学習コストが低い』などが挙げられます。
doT.jsを理解するために初心者でも分かる歴史、特徴などの基礎知識について簡単に解説させていただきました。doT.jsを一言で表すと『Node.jsとブラウザ用のJavaScriptで使用されるテンプレートエンジン』です。『JavaScriptのようにHTMLを書ける』『シンプルで分かりやすい』『レイアウト機能がある』などの特徴が挙げられます。doT.jsについてこの記事に書かれている最低限の内容は理解をしておくようにしましょう。