yo-log

@yo-iidaのlog

MEAN Stackアプリケーション開発

最近会社でMEAN Stackアプリケーションの開発に取り組んでいます。

MEANとは、

  • MongoDB
  • Expressjs
  • AngularJS
  • Node.js

を用いて構築されるアプリケーションです。

すべてのレイヤーでjavascriptとオブジェクトでデータのやりとりができるため、
サーバーサイドとフロントエンドで言語の差異による仕様のすり合わせの手間が少なかったり、
JS界隈では開発ツールも充実していて、スピード感のある開発をできます。

ただし、MEANには向き不向きもあります。

MongoDBにはスキーマトランザクションがありません。
したがって、大規模なECシステムなどをMEANで構築することにはあまり意味がありません。
では、なにが向くのか。

アプリケーションであれば、データ規模は中小規模で、
データの信頼性が小さくても問題にならないシステムだったり、
データに対してUPDATEすることがあまりないシステムが向くと思います。
たとえば、チャットアプリとか、スケジュール管理アプリなどです。
一部、大規模に使えるジャンルがあります。
それはログ集計・分析です。データを溜め込むことにはある程度使えると思います。

会社での開発はというと、各自の予定・ステータス管理アプリを開発中です。
もともとはネームプレート付きのホワイトボードで管理していましたが、
ちょっと古すぎるということでアプリに生まれ変わろうとしています。

http://iact-geekroject.tumblr.com/

開発の様子は上記をご覧ください。

そして、MEANの中でも一番興味深いのがAngularでした。
今回初めて触りましたが(今更感は否めない)、
オブジェクト指向デザインパターンが基本にあり、
今までフロントエンドといえばjQueryだった自分はかなり驚いています。

今後はフロントエンドはAngularを軸にオブジェクト指向を深めていきたいと思います。

また、今回はwebsocketも使っています。
MEANの解説記事はありますが、
websocketまで組み合わせた記事は以外と少ないので、
アプリケーションの雛形はそのうちgithubにあげます。