お休みいただいてる間に投稿いただいたので、掲載が遅れました。元ネタはQiitaにあって充実したエントリーとなってますので、そちらをご参照ください。自分の方は原文で下記のように紹介されているSynthについて、Node.jsベースでありクライアントサイドMVCにAngularを据えAPIファースト(というかAPIしかない)でありAngularとフレームワークが統合されており、テンプレートが一つでありURLを適切なモデルにルーティングし、Angularに直接モデルを渡す追加でメモってみます。AbramsはNetflix出身で、現在は新しいタイプのゲームコンソールを提供しているOUYAに在籍。APIを生成フロントとバックエンドのコードを明確にわけて管理Expressなどの標準のNodeJSライブラリを使えるviewのデータとHTMLを最初にまとめて読込むRailsなどの従来のサーバサイドのフレームワークでは、URLのリクエストに対してHTMLをサーバ側で生成して、クライアント側で表示した後、ユーザの操作を反映させるにはウェブページ全体を再度読込むかたちになる。Angularなどのクライアントサイドのフレームワークは、サーバからのJSONデータをもとにページの一部だけを更新できるという利点がある。最初のURLのリクエストに対してサーバ側はまずレイアウトHTMLだけを返す。HTMLを取ってくる。ラウンドトリップを2回しないとページ全体が表示できない。HTMLを最初にまとめてサーバから返す仕組みなので、両方のフレームワークの課題を解決できる。手元で計測すると読込み時間が17%改善。遅延の大きいモバイルや通信環境の悪い地域だともっと改善すると思っている。InfoQの記事によると、プリロード機能は,SynthのAPI処理関数にPromiseのサポートを追加することで実現されている。これによりAPIハンドラがExpress応答オブジェクトと直接通信する必要がなくなるため,APIハンドラの再利用が可能になる。APIハンドラはAPIコール時だけでなく,特定のWebビューが要求されたときにもコールされる。これにより,モバイルWebアプリに付きものの高いレイテンシを軽減することが可能になるのだ。APIリソース作成を簡略化しようとしている。Synthはリソースフォルダから.js(あるいは.coffee)ファイルを検索して,それが配置されているフォルダ名に基づいたAPIを生成する。memoesソースを作成するには,同じ名前のフォルダを作成した上で,そのディレクトリ内の任意のファイルに対象とするHTTPメソッド用のリクエストハンドラを宣言すればよい。これはエクスポートする関数をアサインすることで行われる。