フロントエンド開発ツールのまとめ
フロントエンド開発に供するツールがたくさんあって位置づけがよくわからんので、整理してみた。
環境構築
Bootstrapping tool
サーバOSの設定や仮想マシンによるサーバ立ち上げの自動化に関するツールのこと。VirtualBox とVagrantやDockerは直接仮想サーバを構築できるが、VagrantはVirtualBox とVagrantやDockerのラッパーであり、直接仮想サーバを構築することはできない。また、Vagrantはウェブ上からHashicorpに登録された仮想イメージを自動的にダウンロードし、VirtualBox とVagrantやDockerを自動操作して仮想サーバを構築することができる。
Configration
サーバやミドルウェアの設定を自動化するツールのこと。Bootstrapping toolのVagrantはConfigrationの機能も備えているが、機能が貧弱なのでAnsibleを使ったほうが良い。なお、Ansible Galaxyはウェブ上に公開されたAnsibleの自動設定ファイルを自動的にダウンロードし実行することができるツールであり、設定ファイルの作成を省略できるため非常に便利である。
実装
Scaffolding tool
自動的にWebアプリケーションのテンプレート(足場=scaffold)を構築するツールである。ウェブ上に公開されたgeneratorと呼ばれる設定ファイルを指定することで、コマンド一行だけでTask RunnerやPackage Managerの設定ファイル、ウェブサイトのテンプレート及びサイトのディレクトリ構成等を自動生成する。
Task Runner
JavaScript向けのビルドツールである。ビルドにかかる様々なタスクを自動化することができる。JavaのAnt/Mavenに相当する。
Module Bundler
JavaScript向けのビルドツールである。Task Runnerとは異なり、依存関係の解決を自動的に行うことに特化している。
Package Manager
ウェブ上のアーカイブに事前に登録されたJavaScript向けのライブラリを自動的にダウンロードして配備するツールである。
MVC Framework
JavaScriptのフルスタックフレームワークである。
ドキュメンテーション
Style Guide Generator
スタイルガイドとは、ある文書の用語法、段組又はタイポグラフィ等の文書の見た目に関する事項事項(スタイル)を定義する規約のことである。Style Guide Generatorは、スタイルガイドを簡単に自動生成できるドキュメンテーション・ツールである。
テスト
Test Automator
試験自動化ツールである。Seleniumはウェブブラウザの操作を自動化し、KarmaはJavaScriptの単体テストを自動化する。
CI
Configuration Management
ソースやドキュメントを管理するための構成管理ツール。バイナリファイルの管理には不向き。
CI Tool
継続的インテグレーション(CI)に用いるビルドツールである。GitLabは、Project ManagementやConfiguration Managementの機能も有する。
Project Management
CI Toolとセットで用いられるプロジェクトマネジメントツールである。
Discussion