heimdalの技術ノート

IT全般、Linux、Windows、プログラミング開発など、何でもござれ

mvcモデル初心者なのにmithril.jsが気になる

はじめに

仕事や趣味で、web関連の技術を学びたい時、html + cssあたりを攻めていきますが、
より柔軟に動きを持たせたければ、html + css に加えて、javascriptを学習し始める必要が出てくる。
javascriptの入門サイトを見たりしりしていると、jqueryが気になり始めて、jqueryを触り始める。
web系を調べていくうちに、Angular.js、React.jsのフレームワークに行きつくような気がする。

web系を調べるたびに考えるが、web系の技術を学ぶには、大量の言語を組み合わせる必要があるから大変だ。。。orz
種類も日々増えて行くので、追いつけない。 書き方も様々だ。フレームワークといえば、特定の型(書き方)にそってコードを書いていけば、
少ないコードで色々動いてくれるものだと思っている。
だから、フレームワークを一つ覚えておけば、良い気がする。 最初は大変だが書き方を覚えてしまえば、型にはまった書き方ができるので、
スラスラ開発。。できるはず!!!

mithril.jsについて

Angular.js、React.jsは有名で覚える価値はあるが、調べていくうちに
mithril.jsというmvcフレームワークに出会った。

このフレームワークの特徴は、
ソースコードが小さく、軽量
フレームワークで使う APIが16個と少ないため、学習コストは低い
・仮想DOMを使っているので、高速
・SPI(シングルページアプリケーション)を作るための、ルーター機能搭載
になる。

特に、学習コストが低いのが良いですね☆
ただ、これは罠で、「※ただし、javascript脱初心者している人に限る」が付いてくる気がします。。。

モデル

MVCモデルといえば、モデル、ビュー、コントローラの構成だが、 mithril.jsは、モデル、ビュー、ビューモデル、コントローラの構成なっているようだ。 なので、MVVMCモデルと呼んでも良いかもしれない。

それぞれの役割は、以下のように解釈している。

モデル
 データを操作する箇所。(ざっくり)

ビュー
 モデルからデータを貰って表示したりする箇所。
 htmlを構成する箇所。

コントローラ
 初期化処理がメイン。
 コントローラからモデルを操作するようなことは、非推奨。
 ユーザからのデータを処理することもしない。

ビューモデル
  名前から、モデルとビューを中継する箇所。
  htmlからの操作した状態などの管理をしたりする。
  このように処理を分割することで、
エラーを特定するときに、特定しやすくなることや、
複数人で作業するときも分担しやすくなるメリットもある。

ただ、この他のフレームワークのように、ガチガチに制約がある訳なさそうだ。
ある程度自由に書かせつつ、mithrilがここぞというところをサポートする感じだろうか。
サンプルソース見ても、色々書き方がある。少し緩めな制約ぐらいが、開発者へのストレスも少ない。

まとめ

mithril.jsは、これからどう成長していくかは分からないが、面白いものであるのは、確かだと思う。
mvcモデルの入門としても、良い。マッチすれば、mithril.jsを使い続け、ステップアップしたければ、
Angular.js、React.jsなどの有名なフレームワークへ行くこともいいと思う。
私自身も勉強して行くので、皆さんもどうでしょうか。

次回から、ソース書いていきます。

ではでは。

参考

公式ホームページに、解説がある。
かなりボリュームもあり、読み物としても良い。
ガイドを見て、モチベーションを上げつつ、
APIを見て、サンプル作る流れがオススメ。
Mithril

書籍も出ている。オライリーならではの良い内容でした。