Edited at

入門者必見:Webサービスを作るときに覚えとくと「あ、聞いたことある。」となるツール群まとめ(Node界隈を中心に)

More than 3 years have passed since last update.

勉強してると、次から次へと新しい言葉が出てきて自分が何がわかって何がわからないかがわからなくなってきてしまう時があります。

はじめに薄く広く知識を持っておくと、勉強が捗ることがあります。

ここでは、サーバサイドJavaScriptを使ってWebサービスを作るときに出てくるツール群を薄く広く取り上げます。


Webのベースとなる言語

Webとは、様々なファイルをサーバからブラウザにダウンロードしてユーザに画面を提供する仕組みです。ダウンロードされるファイルはここで上げているものと、後は画像くらいです。これを抑えておけば大丈夫です。


JavaScript

nodeでアプリケーションを作るために主に利用するプログラミング言語です。とても美しく(主観)エレガント(主観)であり、シンプルです。


HTML

タグ(のような)形式で画面を作ることができます。HTML5というと、HTMLのバージョン5のことです。HTML5はHTMLの次世代企画で、サーバー間通信ができるWebSocketや、お絵書きできるCanvas等、いろんな機能が追加されています。


CSS

HTMLの装飾ができます。色を替えたり、大きさを替えたり、場所を替えたりできます。ちょっと書くのがメンドクサイので、SCSSのようなCSSを生成するための仕組みもあります。


実行環境


node.js

JavaScriptを動かすための実行環境です。ChromeというブラウザのJavaScriptを実行する仕組みを利用して作られています。


nvm

nodeにも、たくさんのバージョンが有ります。同じPCで複数のnodeを使いたいときに、nvmを利用すると、バージョンの切り替えが簡単です。


npm

nodeのパッケージマネージャです。nodeには、その上で動く色々なライブラリ、ツールが有りますが、それをコマンド一発でインストールすることができます。依存性(ツールが別のツールを利用すること)も解決して、必要なソフトを全部入れてくれるので楽ちんです。


ビルドツール

アプリケーションを自分のパソコンで作った後は、たいていは他の場所、別のパソコンや、サーバ上で動かしたくなります。その際のセットアップ(準備や設定)をするためのツールです。ビルドツールを利用すると、準備や設定をするのを手伝ってくれます。


grunt

わりと人気のツールです。


gulp

gruntに対抗すべく出てきたツールで、これからもっと人気になりそう(主観)です。


フレームワーク

アプリを作る上では、「決まったやり方」で作っておくと、他の人と共作するときにもやり方を伝える必要が少なくなりますし、決まりきったやり方であれば他の人が作った物を流用できるので便利です。そのための決まったやり方と、それをアプリケーションにしたものがフレームワークです。


express

Webサイトを作るためのフレームワークです。


sequelize

データベースにアクセスするためのフレームワークです。


AngularJS

画面を作るために使えるフレームワークです。Google謹製


React

画面を作るために使えるフレームワークです。Facebook謹製。


JQuery

ブラウザ間の挙動の違いをなくしてくれたり、便利機能を提供してくれます。JQueryは正確にはフレームワークではありません(やり方は提供しない)が、ここでご紹介。


テストフレームワーク

テストを自動化して、変更が入るたびにテストが行われるようにするのが最近のアプリ開発の主流です。自動化に使えるツールもたくさん出ています。


Jasmine

自動テストを書くためのフレームワークです。老舗。


Mocha

自動テストを書くためのフレームワークです。人気。


Selenium

ブラウザを自動操作するためのツールです。入力やボタン操作を勝手にやってくれるのはオモシロイ。お試しの価値有りです。(主観)FirefoxのSeleniumプラグインを使うとすぐに確認できるのでやってみてください。


自動化ツール

何かイベントがあった時に処理を自動で実行してくれるアプリケーションです。イベントとは、ソースの更新だったり、ある時間が来た時です。


Jenkins

オープンソースの自動化ツールです。人気です。


Travis

自動化ツールをサービスとして提供しています。


Alt.js

nodeはJavaScriptで動きますが、JavaScriptとは別の言語を使いたいちょっとかわった(主観)人もいます。その人達のために、JavaScriptに変換できる、JavaScriptではない、JavaScriptに似た言語があります。そんな言語のことをAlt.jsといいます。


TypeScript

Microsoftが作ったAlt.js、ちょっとお固く、また、ちょっと未来を先どってJavaScriptを書けます。


CoffeeScript

手抜きしてJavaScriptが書けます。


動かす環境、いわゆるクラウド。

自分のパソコンや、買ってきたサーバ上でもnodeは動きますが、最近の主流はクラウド。リモートにあるサーバを調達してその上で動かすことができます。


Amazon Web Services(AWS)

Amazonが提供しているクラウドです。有名で機能が豊富です。最初に触るなら、こちらが良いです。


Heroku

簡単にサイトを公開できます。好き。(主観)


Google Compute Engine

Googleのクラウドです。好きだった。(主観)


Microsoft Azure

Microsoftのクラウドです。


Webサーバ

nodeはそれ自体でWebサーバにもなりますが、複数のnodeアプリを立ち上げたり、アクセスするURLによって別のアプリに切り替えたり、通信を暗号化するなどは、Webサーバを使ったほうが機能が豊富です。


Apache

皆知ってます。


nginx

最近人気のWebサーバです。設定が簡単で、早いです。


データベース

データを保存しておくときに、簡単にデータを追加したり、変更したり、使ったり、削除するために利用するものです。


RDB

皆知ってます。SQLというデータ取り出し方法が使えます。RDB(リレーショナルデータベース)は規格のようなもので、製品にはPostgreSQL,MariaDB,Oracle,DB2,sqlite,等々、た~くさんの物があります。


NoSQL

RDBは正確にデータを扱うことが得意ですが、(すごく)大量のデータを扱うことは時に苦手です。そこで出てきたのが、NoSQLDBです。RDBではないデータベースの総称で、MongoDBやら、Hadoopやら、これもたくさーんの物があります。


エディタ(IDE)

プログラミングをするときには、それ専用の書くツールを使うと楽なことが多いです。もちろん、ただのメモ帳でも作れますが、見づらかったり、間違って書いた場所が探せなかったりします。


Eclipse

大好き(主観)


Vim

無言(主観。下手に口を出すと戦争に巻き込まれるため。)


Emacs

無言(主観。下手に口を出すと戦争に巻き込まれるため。)


バージョン管理

アプリを作っている時に、あるバージョンのソースコードやドキュメントの一式をとっておきたいことがあります。そんな時に利用するのがバージョン管理ツールです。チームでソースを共有したいときにも使えます。


Git

Linuxを作った人が作ったバージョン管理システムです。最近一番人気ではないでしょうか。Gitを使ってサービス提供しているGithubというサービスがあります。無料で使えるので使ってみるといいです。


Subversion

Gitの前には主流でした。


チケット管理

アプリを作っている時に作業を記録したり、人に作業をお願いするときに作業を「チケット」として管理するツールです。


Redmine

オープンソースのチケット管理システムです。


Track

オープンソースのチケット管理システムです。昔からあるプロジェクトでは使われていることが多いでしょう。


Jira

最近のオープンソースで大人気です。基本有料です。