フルスタックのフレームワーク


仕事で企業内のWebアプリケーションを作る機会が多いのですが、最近は運用環境をクラウドにする、Web APIを使って他のアプリケーションと連携するなんていう場合が増えました。

最近やっているのは、Node.jsというJavaScriptのフレームワークのようなものの上に作られたExpressというWebアプリケーションのフレームワークとMongoDBという非SQL型のデータベースを使ったアプリケーションです。REST APIで外部のシステムと連携して動くものです。ブラウザ側はjQueryを主体にいくつかのライブラリが混在する環境で開発します。

ORマッピングのフレームワークがなくても、オブジェクト指向っぽくデータベースがアクセスできて、簡単なものを作るなら楽にやれるMongoDBとExpressで使えるライブラリがあって、JavaScriptもオブジェクト指向的な使い方をする。

JavaScriptの部分がRubyやPythonに変わるだけで、似たような構成で開発する場合もあります。

プロジェクトのフォルダーを見ると「えっ、こんなに?」というくらい多くのJavaScriptライブラリがインストールされます。それぞれが何をやっているのかがよくわからないし、ドキュメントは当然のようにバラバラな書き方なので読みにくい。最初は「これで大規模なアプリケーションが作れるんだろうか?」という疑問を持ちました。

パーシステント層からプレゼンテーション層まで、バラバラに作られた多くライブラリが使われるこういう開発環境。こういう環境で仕事をしてる人の頭脳はとても優れているのかもしれません。

個人的には以前ならWebObjects、今ならAribaWebのようなフルスタックのフレームワークの方が好きです。ビジネスロジックの開発に集中できるとか、再利用可能なコンポーネントを作れるとか、いろいろと理由があってのことです。テスト済みの様々な粒度のコンポーネントを無修正で使い回せるのって凄く嬉しい。

バラバラのライブラリの集まりを自由に組み合わせてアプリケーションを作るのは、自由度という点では有利かもしれませんが、そこそこの規模のアプリケーションを作るとなるの、なかなか大変です。フルスタックのフレームなら、規模に対する恐怖のようなものは少ない。ただし自由度が若干落ちる感じがします。

バラバラのライブラリを使いこなすのも、フルスタックのフレームワークで自由度の高い設計をするのも技術力なのかもしれませんが、使う頭が違うような気がしています。

今回はバラバラな方で頑張ってみましたが、次回はフルスタックの方で自由度を上げる努力をしてみようと思います。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中