JQ Blog

JSのMVCフレームワーク

種類

  • React.js
    • 最近注目を浴びているFacebook製のライブラリで、MVCアーキテクチャでいうViewにあたる機能を提供する
    • JSX、Virtual DOMという、新しいアプローチ
    • MVCとは違う、Fluxという設計パターン
    • Isomorphicなアーキテクチャが可能
  • Angular.js
    • Googleが開発している人気MVCフレームワーク
    • フルスタックで、できないことは殆ど無い
    • Yeomanなどを使うとSPA(Single Page Application)が30分位で作れてしまう
    • Angular Wayともいわれるが、モジュール化がきっちりされていて、汚いコードにはほぼならない
  • Angular.js 2.0
    • ES6等の最新のJavaScript規格を取り入れ、TypeScriptをベースとし記述する
    • Angular.jsとはかなり書き方が違う
    • WebComopmentsを利用した、より厳密に独立したコンポーネント化を推進
  • Backbone.js
    • 単一データの管理を行うModel、複数件のモデルの管理を行うCollection、画面の管理を行うViewを組み立てていく
    • Backbone.js自体は構造化の仕組みがなく、フレームワークとしてMarionette.jsと一緒に使われることが多い
    • 事例が案外多い(Buffer、Soundcloud、Trello、Qiitaなど)
  • Vue.js
    • MVVMパターン
    • 作成したUIコンポーネントを組合せてページを構成することを前提にしている
    • 似ているといわれるが、AngularJSと設計思想は全く異なるもの
    • 理解しやすいフレームワークとして有名
  • Mithril.js
    • Mercuryとともに、スピードがかなりはやいフレームワーク
  • Aurelia.js
    • ES6、ES7なシンタックス
    • GoogleでAngularJSの開発に関わっていたRob Eisenbergさんが開発した
  • Knockout.js
    • MVVM
    • Bindingに特化したフレームワーク
    • 機能は少ないが、導入するのが容易で、学習コストも低い
  • Ember.js
    • 後で調べる
  • Riot.js
    • 後で調べる
  • Ractive.js
    • 後で調べる
  • まとめ
    • 現存するフレームワークは多すぎる。その中でReact,Vueは早い速度で成長している。Angularは最もシェアが多いのでライブラリとかもちゃんとよいされ、安定的に開発できる。Backboneは段々シェアが落ちていくけど、影響力はまだかなり大きい。

タスクランナー

  • Gulp
    • タスクランナーは、フロントエンドの様々な面倒事を自動化できるツールです。これなしのフロントエンドはもはや考えられない気がします。

モデュール化

  • Webpack
    • Webコンテンツには、CSS、JavaScript、画像、webフォント等多くのファイル(アセット)が必要になる。こういったwebで必要なファイルを取り扱うためのWebpackというものが最近人気になっている。
    • webpackとは、 webコンテンツを構成するファイルを「モジュール」単位で取り扱い、最適な形に作り変えるためのツールである。

参考

Comparison of 4 popular JavaScript MV* frameworks (part 2)
ここ数年前から2015/5までのモダンフロントエンドを総まとめしてみた
JS開発で人気のWebpackとは!?