「Railsが時代に合わなくなってきた」のフォロー

http://qiita.com/kaiinui@github/items/2781219340d427543d08

1 comment | 0 points | by WazanovaNews 3年以上前 edited


Jshiike 3年以上前 edited | ▲upvoteする | link

お休みいただいてる間に投稿いただいたので、掲載が遅れました。すみません。

元ネタはQiitaにあって充実したエントリーとなってますので、そちらをご参照ください。

Railsが時代に合わなくなってきた

Javascriptを使うのをやめろ : Railsの時代遅れ云々についての結論

自分の方は原文で下記のように紹介されているSynthについて、

  • Node.jsベースであり
  • クライアントサイドMVCにAngularを据え
  • APIファースト(というかAPIしかない)であり
  • Angularとフレームワークが統合されており、テンプレートが一つであり
  • URLを適切なモデルにルーティングし、Angularに直接モデルを渡す

追加でメモってみます。

  • 開発しているJohn AbramsはNetflix出身で、現在は新しいタイプのゲームコンソールを提供しているOUYAに在籍。
  • Synthが目指すのは「Javascript webアプリ(Angular|Ember|Backbone)を簡単につくり & 管理するためのにデザインされたバックエンドのwebフレームワーク」だが、現在はまだ ver. 0.5.2
  • 主な機能
    • フロント(Bower経由)+ バックエンド(npm経由)のパッケージを簡単インストール & 追加できる
    • Devモード + Productionモード
    • 最小のコードでRESTful APIを生成
    • フロントとバックエンドのコードを明確にわけて管理
    • Expressなどの標準のNodeJSライブラリを使える
    • viewのデータとHTMLを最初にまとめて読込む
  • Railsなどの従来のサーバサイドのフレームワークでは、URLのリクエストに対してHTMLをサーバ側で生成して、クライアント側で表示した後、ユーザの操作を反映させるにはウェブページ全体を再度読込むかたちになる。一方、Angularなどのクライアントサイドのフレームワークは、サーバからのJSONデータをもとにページの一部だけを更新できるという利点がある。しかし、最初のURLのリクエストに対してサーバ側はまずレイアウトHTMLだけを返す。そして、次にブラウザがJavaScriptを処理して、APIコールをしてview HTMLを取ってくる。ラウンドトリップを2回しないとページ全体が表示できない。Synthの場合は、JSONデータとview HTMLを最初にまとめてサーバから返す仕組みなので、両方のフレームワークの課題を解決できる。
  • 手元で計測すると読込み時間が17%改善。遅延の大きいモバイルや通信環境の悪い地域だともっと改善すると思っている。

InfoQの記事によると、

  • プリロード機能は,SynthのAPI処理関数にPromiseのサポートを追加することで実現されている。これによりAPIハンドラがExpress応答オブジェクトと直接通信する必要がなくなるため,APIハンドラの再利用が可能になる。APIハンドラはAPIコール時だけでなく,特定のWebビューが要求されたときにもコールされる。これにより,モバイルWebアプリに付きものの高いレイテンシを軽減することが可能になるのだ。

  • Synthはさらに,フォルダ作成や関数のネーミングに工夫を加えることで,新たなRESTful APIリソース作成を簡略化しようとしている。Synthはリソースフォルダから.js(あるいは.coffee)ファイルを検索して,それが配置されているフォルダ名に基づいたAPIを生成する。memoesソースを作成するには,同じ名前のフォルダを作成した上で,そのディレクトリ内の任意のファイルに対象とするHTTPメソッド用のリクエストハンドラを宣言すればよい。これはエクスポートする関数をアサインすることで行われる。

Back