いまから始める！AngularJS《Advent Calendar 2014》


これは [AngularJS Advent Calendar 2014](http://qiita.com/advent-calendar/2014/angularjs) の初日(12/1)の投稿です。

AngulrJS については [ADVENTAR](http://www.adventar.org/calendars/350) にもカレンダーがあるので、このようなイベントに参加する人が Qiita と ADVENTAR でバラけている気がしなくもないですが、当日に初日の枠が空いていたので、夕方になってカッとなって書きますw ですので文量が少なくてすみません。

開発環境については、他の方が書いてくれそうなので、今回は省きます。
（ただ AngularJS に限らず、JavaScript のフロントエンドをやるなら Mac でやったほうが捗るかと思います。）

## 公式ページやリファレンス

公式ページは [https://angularjs.org](https://angularjs.org) です。本体ソースは [GitHub](https://github.com/angular/angular.js) で公開されています。

API リファレンスは、上記の公式ページのうち、こちらにあります。
⇒ https://docs.angularjs.org/api

あまり知られていない（当たり前すぎる？）かも知れませんが、API リファレンスの各ページの [View Source] ボタンを押すと、本体ソースの該当箇所にジャンプしてくれます。

![スクリーンショット_2014-12-01_16_48_14.png](https://qiita-image-store.s3.amazonaws.com/0/35733/c4934748-9292-8e1b-59e4-64f774292394.png "スクリーンショット_2014-12-01_16_48_14.png")

挙動が分からない場合は、ググるより **本体ソースの実装を見たほうが早い** と個人的には思います..

## AngularJS の書籍

とりあえずアナログ的に書籍で学習したいという場合、日本語のものは(私が知る範囲では)、次の２冊があります。

- [AngularJSアプリケーション開発ガイド](http://www.amazon.co.jp/dp/4873116678)
- [AngularJSリファレンス](http://www.amazon.co.jp/dp/4844336681)

日本語での情報がまだ少ないので、手っ取り早く網羅的に知識を得るには、書籍を読むのも一つの手かと思います。

## IDE(エディタ)は何がいいか

- AngularJS に限らないのですが [WebStorm](https://www.jetbrains.com/webstorm/) が使いやすいです。最新バージョンは 9 です。
	- AngularJS もサポートされているので、コード補完とか効きます。

		![スクリーンショット 2014-12-01 16.02.34.png](https://qiita-image-store.s3.amazonaws.com/0/35733/647c46dc-cc8c-6faf-2b4b-5178e737e4e0.png "スクリーンショット 2014-12-01 16.02.34.png")

	- 有償(`パーソナルライセンス` で一年目は＄48)。
		- お試し期間があるので、とりあえず触って評価してみてもいいかと。
		- ただ、これから JavaScript をやっていくなら高い金額ではない、と思います。
- ほかの IDE は良く知りません^^;

## そもそも JavaScript を知る

AngularJS といえど、そもそも JavaScript が分かっていないと、読んだり書いたりするのは辛いです。下記は AngularJS に特化した書籍ではないですが、JavaScript 全般の知識をサクッと獲得するのにいいなと思った書籍です。

まずは安定のオライリー本から。

- [JavaScript 第6版](http://www.amazon.co.jp/dp/4873115736)
	- ものすごく分厚いのですが.. 「第I部」だけでも読むと、雰囲気が掴めるかと。
- [開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質](http://www.amazon.co.jp/dp/487311621X)
	- 薄いのでサクッと読めます。
	- 既存の JavaScript のソースがなんでこういう書き方してるのん..という疑問に対する答えが書いてある感じ。

もしくは手前味噌ですが、この記事はサーバサイドエンジニアが JavaScript を理解するきっかけとなればと思い、書きました。
⇒ [サーバサイドエンジニアでも押えておきたい！コアJavaScriptの基本知識](http://qiita.com/hkusu/items/e06f04e804e130140f17)

ムック本だと、技術評論社から出版されている下記の２冊が、昨今の JavaScript の周辺環境を掴むのに最適かと思います。初学者向けに書かれているので、サクッと読めます。

- [フロントエンドエンジニア養成読本](http://www.amazon.co.jp/dp/4774165786)
	- タイトル通り、フロントエンドの周辺環境について網羅しています。
- [JavaScriptエンジニア養成読本](http://www.amazon.co.jp/dp/4774167975)
	- 本書では AngularJS でなく Backbone.js を詳細に紹介していますが、AngularJS についてもその特徴や、Backbone.js との比較など書いてあります。
	- CoffeeScript（代替言語。私は AngularJS はこれで書いてます）や Grunt（タスクランナー）の記事もあり、とてもわかり易かったです。
	- そのほかコラム等で、JavaScirpt 界隈の歴史的経緯やトレンドなど補足してあり、これから JavaScript やるぞ！という方には参考になります。

## おわりに

これから AngularJS を始める方の参考になれば幸いです。あと、最近は AngularJS は下火？のような気がしなくもないですが、向き/不向きの問題かなあと個人的には思っており、バリバリのフロントエンドをやる場合は、確かに本体の黒魔術実装や、他のライブラリと組み合わせられない、という問題は気になるところかなと。
（あと Angular 2.0 では、随分かわりそう？なので、寿命が長いことが今から分かっているアプリケーションだと躊躇するかな。）

ただバリバリでない場合は、サクッとアプリケーションが作れますし（まあ、そのためのフレームワークですし）、私自身も何か実現する場合は、AngularJS は選択肢の一つとして持ち続けて、その都度、何を使うのが判断していくかな、という感じですかね。

なにはともあれ、選択肢は多いにこしたことがないので、実際に AngularJS を触ってみて、得手不得手や使いドコロを知るのも、勉強や経験として悪いことではないかなと思います！