回答編集履歴
1
インデントの修正など
test
CHANGED
@@ -1,28 +1,20 @@
|
|
1
|
-
Angular2はフレームワークなのでrailsと同じように、そのフレームワークだけでアプリケーションを構成
|
1
|
+
Angular2はフレームワークなのでrailsと同じように、そのフレームワークだけでアプリケーションを構成できるように作られています。railsで作ったフォームをAngular2で使い回すといったことは基本的にどちらかの機能を犠牲にすることになります。
|
2
2
|
|
3
|
-
r
|
4
|
-
|
5
|
-
要はまともに書き換えようとすればアプリケーションをほぼ丸々書き換えるレベルのコストが発生します。特にjqueryで書かれている資産をほとんど捨てることになります。またAngular wayという言葉があるようにAngularは独自の概念を多量に含むので初期の学習コストが非常に高い事で有名で2になってもその点はさほど変わりはありません。
|
6
|
-
|
7
|
-
またnode.jsを全く触った事なければそちらの学習コストも必要になります。
|
8
|
-
|
9
|
-
Angular 2のソースコードは普通のjavascriptのようにsrcで配置すれば読み込めるというようなものではなく,webpackなどでビルドの管理をする必要があり,実際のプロダクトに対して自由自在に設定できるまで学習するのは相当気合がいります。またまだまだ情報がすくなくrailsに組み込むことを考えやっている人はそんなに多くはいないので更に学習コストが高くなるでしょう。
|
3
|
+
現状sprocketsなどとの共存は出来なくなると思います。要はまともに書き換えようとすればアプリケーションをほぼ丸々書き換えるレベルのコストが発生します。特にjqueryで書かれている資産をほとんど捨てることになります。またAngular wayという言葉があるようにAngularは独自の概念を多量に含むので初期の学習コストが非常に高い事で有名で2になってもその点はさほど変わりはありません。またnode.jsを全く触った事なければそちらの学習コストも必要になります。
|
10
4
|
|
11
5
|
|
12
6
|
|
13
|
-
|
14
|
-
|
15
|
-
しかしそれもそれでAngular 2またはrails
|
16
|
-
|
17
|
-
の機能を犠牲にすることになります。
|
7
|
+
Angular 2のソースコードは普通のjavascriptのようにsrcで配置すれば読み込めるというようなものではなく,webpackなどでビルドの管理をする必要があり,実際のプロダクトに対して自由自在に設定できるまで学習するのは相当気合がいります。また,公式リリースから日が浅くまだまだ情報が少なくrailsに組み込むことを考え実行している人は,そんなに多くはいないので更に学習コストが高くなるでしょう。
|
18
8
|
|
19
9
|
|
20
10
|
|
21
|
-
|
11
|
+
新たにアプリケーションを作成し,それをrailsでルーティングしAngular2のソースコードに変数のみ渡す運用などは出来るかもしれません。しかし,それもそれでAngular 2またはrailsの機能を犠牲にすることになります。
|
22
12
|
|
23
|
-
Angular 2のメリットはコンポーネントとモデルの密な結合,コンポーネント同士は疎な結合にすることで,相互作用によってぐちゃぐちゃになりやすいview内のuiを綺麗に切り離せること,他言語のようにモデルのデータ構造をjavascriptに渡さなくても,モデルの構造がjavascriptで定義されているのでサーバ側もクライアント側も同じようにデータの処理が出来ること,クライアント側の中にステイトを持たせられるため,サーバにアクセスしなくてもクライアント内で画面の書き換えが継続出来てサーバー負荷を減らせるSPAを構築しやすいこと。またuiとモデルが相互に値の更新が同期される関係であるためサーバーの変更をクライアントにも反映させるオブザーバブルパターンのアプリケーションが構築しやすいという大きなメリットがあります。
|
24
13
|
|
25
|
-
|
14
|
+
|
15
|
+
ここまでは,デメリットばかりあげましたが、書き直すということに対してのデメリットであり,新規開発で採用するメリットは沢山あります。jQueryでは,共同作業をしているとUI操作のセレクタに一貫性がないコードが書かれていたり,冗長な記述によってファイルが肥大化したり,毎回無駄なdomの全探索を行うようなコードが散見しやすくなる(最適化していれば速いですが複数人絡むプロジェクトでUIの設計方針を厳密に決めるのはほぼ不可能)のに対して,Angular 2などのVirtual DOM型のviewでは,コンポーネント毎に独立させる書き方によって互いの干渉を最小限に抑え見通しをよく出来ます。
|
16
|
+
|
17
|
+
Angular 2のメリットはコンポーネントとモデルの密な結合,コンポーネント同士は疎な結合にすることで,相互作用によってぐちゃぐちゃになりやすいview内のuiを綺麗に切り離せること,他言語のようにモデルのデータ構造をjavascriptに渡さなくても,モデルの構造がjavascriptで定義されているのでサーバ側もクライアント側も同じようにデータの処理が出来ること,クライアント側の中にステイトを持たせられるため,サーバにアクセスしなくてもクライアント内で画面の書き換えが継続出来てサーバー負荷を減らせるSPAを構築しやすいこと。またuiとモデルが相互に値の更新が同期される関係であるためサーバーの変更をクライアントにも反映させるオブザーバブルパターンのアプリケーションが構築しやすいという大きなメリットがあります。更にMVCより大規模開発の際に安全とされているfluxパターンという開発モデルをサポートするライブラリを組み込みやすいように設計されています。
|
26
18
|
|
27
19
|
|
28
20
|
|
@@ -34,8 +26,8 @@
|
|
34
26
|
|
35
27
|
|
36
28
|
|
37
|
-
これらはライブラリやパッケージで,
|
29
|
+
これらの違いは上記二つはライブラリやパッケージで,アプリケーションやフレームワークへの導入の親和性が高くなるように出来ていて,フレームワークと用途が違うからです。
|
38
30
|
|
39
31
|
|
40
32
|
|
41
|
-
これらが参考になればと思います。
|
33
|
+
これらが開発の参考になればと思います。
|