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
書籍も出ている。オライリーならではの良い内容でした。