文系からでもプログラミングできました!IT関係の情報を書いていきます。

プログラマーinfo

Angular

2年目のRailsエンジニアがAngularで開発してみて感じた両者の差

投稿日:

RailsとAngularとは

RailsとはRubyで書かれたオープンソースのフレームワークです。

初心者も簡単に開発できるためとても人気があり、僕もRailsエンジニアとして仕事を始めした。

 

AngularはTypescript(Javascript)で書かれたGoogleが開発しているフレームワークです。

シングルページアプリケーションを簡単に記述できるフレームワークでこちらも人気のあるフレームワークです。

 

Railsでは僕が好きな動的なページ処理が書きづらかったため、Angularを学習し始めました。

 

 

 

 

作ってみたサイト

3ヶ月ほど学習し以下の2つのサイトを作ってみました。

検索できるメモ帳
レイアウトギャラリー (CSSのレイアウトを一覧で見れるサイト。こっちは慣れたので3時間くらいで作れました。)

 

両方使ってみて、RailsにもAngularにも一長一短あるなと思いました。

僕が感じてた差について書いてきます。

 

 

 

 

Angularは動的な処理が楽!Rialsは大変!

これは期待通りだったのですが、Angularでは動的なページ変更を非常に容易に記述できます。

 

Railsを使っていると、動的なページの変化をJQueryでを書きます。

そして、そのJQueryの記述はHTMLの中に書かれたり、JQueryの中にHTMLの記述を書くことになり、複雑になりがちです。

 

一方でAngularでは、Angularが自動でデータの変化に対応したViewの処理をしてくれます。

なのでViewとデータの関係を記述せずにすみ、両者が複雑に絡みあう事がなくなります。

 

僕がRailsだと数時間かかって書く処理が、Angularでは約10分で記述できました。

これはとても良かった点です。

 

 

 

 

Angularはエラーが出にくい!Railsはエラー出る!

 

Angularの基になるのはTypeScriptという型付きの言語です。

Rubyの動的な型付けの言語とは違い、型があると間違ったメソッドの記述はコンパイラーが検出してくれます。

 

このおかげで開発効率はだいぶ高まりました。

動かしてから予想外のデータが来て処理が止まることがあまりありません。

 

 

 

AngularではCSSやJS分離は簡単!RailsではCSSとJSの分離がむずかしい!

 

Angularにはコンポーネントというそれぞれ独立した部品を組み合わせてViewを作ります。

 

コンポーネントは相互に親子関係があってもCSSを継承しません。

 

なので、一つのコンポーネントのCSSを記述する時、他のコンポーネントのCSSやDOMの構造を全く知らずに記述することができます。

JavascriptのDOM処理はAngularがやってくれるのでほぼ書きません。

 

Railsにもpartial_templateの仕組みがあるのですが、テンプレートは呼び出し元のCSSファイルやJavascirpt, ネームスペースの影響を受けます。

また、Javascriptファイルを分離したい場合は読み込みの順番などを意識する必要があります。

 

なので、Railsでは設計を丁寧にしないとCSSやJavascriptの分離が難しいという状態になります。

 

 

 

 

AngularはGemいらない!Railsはgem使う!

 

Angularは完成度が高いフレームワークなので、追加で何かライブラリをインストールする必要はほぼありません。

あまりツール選定を考えずともAngularで完結するのはメリットです。

 

 

 

 

Railsは学習コストが低い!Angularは高め!

 

ここまではRailsディスりみたいになってましたが、こっからはRailsのいいところです。

Railsのとても良いところはやはり、学習コストが低い事です。

 

RailsにはActiveRecordの仕組みがあり、うまい具合にデータベースの仕組みを隠蔽してくれています。

なので、RailsではRailsだけでアプリケーション全体が開発できます。「データベース」や「HTTPサーバー」などの学習をせずともです。

Rails本体が簡単かというとそんなこと無いのですが、全体の学習コストはとても下がることになります。

 

僕はAngularを作って初めて「データベース」、「サーバー」、「フロント」を意識する必要が生じ、さらにその連携のためのAPIを初めて考える事になりました。

 

本来はそれが基本なんでしょうが、Railsでは「Rails」で完結していて、データベースについてもサーバーについてもも考えずにすみます。

 

Railsは初学者がアプリケーション開発を体感するにはとてもいいフレームワークだと思います。

 

 

Railsは日本語!Angularは英語!

ドキュメントの充実度が、日本語に限定するとRailsの方が圧倒的です。

僕はエンジニアとしての維持で英語を読む習慣をつけているので気にならないのですが、ドキュメントが英語じゃないと読めないページがあります。

 

この点も日本人から見たプログラムの敷居の低さに大きく影響していると思います。

 

 

 

総評

結果的にはAngular大好き人間になりました。学習コストは高いものの、Angularは手に馴染む道具を使っている気分になりました。

RubyやRailsはとても便利なんですがどこかマジックボックスで、地に足がつかない感覚があります。

 

この辺は好みの問題もありそうです。

 

ただし、初学者にAngularはあまり勧めません。

体系的な理解ができるまでアプリケーションがまともに動かず挫折の原因になりかねないです。

 

 

 

おわりに

 

学習のためにAngularもRailsもそれぞれ10冊ほど本を買ったのですが、良かったものを紹介しておきます。

 

今はRailsが圧倒的に流行ってますが、そのうちAngularもちょっと試してみてほしいです。

 

Angular

鉄板。入門にとても良し。

公式ドキュメントの方が詳しく書いてるので、こちらは導入に良いです。

 

 

Ruby on Rails

Railsはこの一冊で一通り開発できるようなります。

 

Ruby

Rubyはこれを一ヶ月ひたすら書いてたらスラスラかけるようになりました。

Railsの理解も深まります。

 

-Angular

Copyright© プログラマーinfo , 2018 All Rights Reserved Powered by STINGER.