deepblue-will’s diary

JS、CSS,Ruby、Railsなど仕事や趣味で試した技術系のことを書いていきます。

Angularを1年ぐらい触ってみた感想

転職して、ReactからAngularにフレームワークが変わりました。Angularと付き合ってそろそろ1年経つのでその感想を書こうとおもいます。世の中にAngularの情報少ないのでその足しになればいいな。

良くないところ

学習のハードルが高い

Angularを使えるようにするためには、Angularそのものの他に、TypeScript, RxJSなども学習しないといけません。
この辺最初の数週間は理解に苦戦して、Reactならこんなことしなくても書けるのになーとずっと思ってました。
あと、公式のチュートリアルが簡単なものだったので、これて本格的なSPA作るとしたらどんな感じになるのかまったく想像できなかったのを憶えてます。

情報が枯れてない

事例が少なすぎてネット上にまたまだ情報が落ちてない印象。しかもググるとAngularJSのことばっかだったりするので、なにか困ったときの解決がなかなか大変です。
特に設計を考えるときは参考になるものがあまりなかったのでなかなか決めきれずTry & Errorでした。。
ただ、公式ドキュメントがしっかりしてるので、最初に一通り読んでおくことをおすすめします。英語が苦手な方はAngularの公式サイトの日本語版 もあります。
Angular触り始めて1年ぐらいですが、私も未だにこんな機能あったのか!と驚くことがあります。

経験者が少ない

採用時に困ります。一から教える覚悟で採用しないといけません。(まぁ、他のフレームワーク触ったことある人ならすぐキャッチアップ可能だとおもいますが)
あと、世の中はVueやReactが主流なので、転職時にAngularしかできませんだとなかなか厳しいものがありそうな印象です。

良いところ

ライブラリの選定から解放される

Angularはほぼ必要なものが全て揃ってます。なので、基本的には追加でライブラリ入れなくても実用に耐えられます。
依存するライブラリが少なくなると、それだけライブラリのライフサイクルに依存しなくなります。AngularだとGoolgleが開発をやめない限り安心して使えます。

Angular CLIの存在感

ビルドやジェネレートなど様々な機能を持つAnglar CLIの恩恵は素晴らしいです。

時間かかる環境構築の設定、メンテから解放されて、アプリケーションを作るという本来の目的にフォーカスできます。

  • 開発用のローカルサーバの起動できる
  • 手間暇かかるビルド設定を書くことなしに開発をスタートできる
  • Angularに合わせてビルド環境を簡単にアップデートできる
  • よく作成するファイル群はジェネレーターで一発で生成できる
  • ざまざまなビルドオプション

最後に

学習コストという観点で、Angularを選択しないという話はよく聞きます。
Angularの学習コストは悪いところにあげた通り、低くはないと思ってます。
ただ、他のフレームワークも最近は学習コストという観点では高くなってるのでは?と思ってます。

例えば、React。単体でも最近ではContext APIやHooksなど便利だけど、複雑な仕組みを登場しました。あと、React単体で使うことはほぼなく、React RouterやReduxやsagaなんかと合わせて使うことが多いのでその他のライブラリの知識も必要です。加えてビルド環境は自前で構築する必要あるのでwebpackなどの知識も。
こうしてみると、Reactを選んだとしても覚えることたくさんあります。

よって、Angularだけが学習コストが高い というのは疑問に思ってます。

(Angularの学習コストに関してlacolacoさんがブログ書いてるので読んでみると良いかも)

個人的にAngularは気に入ってるフレームワークなので、もっと活用例が増えていろんな事例が増えるといいなと思ってます。