コードを書いてくらす

プログラミングについて書いてます。

JavaScriptでMVCを実装してみます(練習)

急に思いついて実装してみました。
MVCだけでなくJavaScriptについてもきちんと理解していない部分があるので、自分でもコレジャナイ感がすごくありますが練習がてらということで。

今回はGitHubのサービスの一つ、Gistを使ってみます。バージョン管理するほどではないけど今回のようにちょっとしたコードをとっておきたい時に使う、コード用メモ帳のような感じでしょうか。

はてなブログの貼付け機能でも対応しているようなので貼ってみます。


mvc-sample code


…ちょっと長くなってしまいました。
上から、html、MVCを実装しているjs、MVCを構築するjsの3つのファイルで構成されています。MVC本体は真ん中のmvcsample.jsですね。

文房具の在庫表示、購入、商品追加などのサンプルアプリケーションです。

それぞれの役割を考えて機能を振り分けたつもりですが、やっぱりモデル対コントローラーと、コントローラー対ビューの切り分けがちゃんとできていないような気がします。よくあるコントローラー肥大問題ですね。


それとMVCそれぞれのオブジェクトがグローバルでどこからでも参照できてしまうのも良くないです。MはVとCからだけ参照できるようにするべき。あとはCで変更したMの状態をどうやってVに伝えるか、Vの変更タイミングをどうするかがまだちゃんとできていません。Vが常にMの内部状態を監視しておくべきなのか、MからVに伝えるべきなのか。


もうすこし改良を加えてみたいと思います。JavaScript、最初はかなりとまどったけど楽しいですね。
今日はこの辺で。