MVVMがいまいちどんなものか分からないという方向け。
僕はMVVM(Model-View-ViewModel)とはソフトウェアの実装パターンの一つくらいに考えていました。
MVVMについてわかりやすくこの記事でまとめていきたいと思います。
目次
前置き:ソフトウェアアーキテクチャパターンとは
これは簡単に言うと開発する際のルールのようなものです。
これまでソフトウェア開発で問題となっていたのが開発する際のフォルダ構成やファイル名等バラつきがあり、ソースコードが属人化してしまうことです。
作った本人しか分からないソースコードは良くないソースコードです。
開発者が変わるたびに引き継ぎに多くの時間を要してしまいます。
そこで登場したのがアーキテクチャパターンという考え方です。
アーキテクチャパターンの登場による恩恵とは?
このアーキテクチャパターンの登場により、実装方針がより統一化されるようになりました。
開発者間での実装のばらつきがなくなることで、より品質の高いソースコードを維持できるようになりました。
決められたルールを作ることで開発の時間短縮、結果開発コストの削減になります。
MVVMとは?
MVVMとはView 、ViewModel、Modelという3つの要素を持った実装パターンのことです。
これにより、ビジネスロジック(DBとの連携、データの状態変化の役割部分)とプレゼンテーションロジック(UI、文字やデータを表示する部分)を分業化できます
まとめると、MVVMパターンの実装を採用することで以下のようなメリットが得られます。
- 役割をソースコードレベルで分けることで変更による影響を最小限に押さえられる
- UI、ロジックを分業化することで、変更箇所が特定しやすくできる
MVVMの処理フロー
上記の図は「View、ViewModel、Model」のそれぞれの役割を表しています。
- ViewModelはViewデータの紐付けとViewに関連するコマンドをModelに渡す
- ModelはViewModelからコマンドを受けDBに対して実際にクエリを実行する
MVVMを用いた場合のAPIの処理の例
例えば「会員登録をする」というボタンを押し、会員登録APIが実行される場合、MVVMパターンだと以下のような感じで分業されるかと思います。
- Viewから会員登録APIの命令を受け取る
- ViewModelで対象となるユーザデータを変数に格納し、データの準備をする
- Modelに登録対象となるユーザデータとコマンドを渡しクエリを実行する
MVVMのビジネス的なメリット
このように分業することで業務の分業化 => 作業の効率化に繋がるのです。
結果的に変更に強いソースコードとなり、お客さん側もより柔軟にアプリの仕様変更を考えられるようになります。
結果、プロジェクトの全員がみんなが幸せになると言うことですね。
さいごに
ここまでお読みいただきありがとうございました。
僕のブログサイト「kzy.tech〜日本脱出のための教科書〜」がどのようなサービスで作られているかが気になる方は以下別記事にてご説明していますので、ご覧いただけますと小躍りして喜びます💃
また、海外移住の 英語とプログラミングを習得することを推奨しています。
これは私の経験則から言えることですが、上記二つのスキルがあれば海外移住は絶対に実現できます。
以下に僕が実際に使って効率よくプログラミング学習ができるおすすめサービスを載せます😌
速習!おすすめプログラミング勉強法【Udemy】
いくつかプログラミング学習サービスを利用しましたが、一番効率よく勉強できると感じたのはUdemyでした。
Udemyでは動画での説明や解説等もあり親切で、学習教材も豊富にあることから プログラミング初学者の方が短期間でエンジニアを目指したいのであれば、非常に良い教材だと思います。
ちなみに私は文系卒で社会人になってから独学でudemyを使ってプログラミングの勉強をして、実際にエンジニアとして採用されました
Udemyのコースは1つ1,000円ほどなので、ITの参考本を一冊(3,000円)を買うよりもUdemyのコースを購入する方が安い上により効率的にプログラミングを勉強できると思います。
世界最大級のオンライン学習サイトUdemy
また、別記事にてダナンでの生活やIT関連についても記事を書いていますのでクリックいただけると嬉しくて踊ります💃