MVVMがいまいちどんなものか分からないという方向け。
僕はMVVM(Model-View-ViewModel)とはソフトウェアの実装パターンの一つくらいに考えていました。
MVVMについてわかりやすくこの記事でまとめていきたいと思います。
前置き:ソフトウェアアーキテクチャパターンとは#
これは簡単に言うと開発する際のルールのようなものです。
これまでソフトウェア開発で問題となっていたのが開発する際のフォルダ構成やファイル名等バラつきがあり、ソースコードが属人化してしまうことです。
作った本人しか分からないソースコードは良くないソースコードです。
開発者が変わるたびに引き継ぎに多くの時間を要してしまいます。
そこで登場したのがアーキテクチャパターンという考え方です。
アーキテクチャパターンの登場による恩恵とは?#
このアーキテクチャパターンの登場により、実装方針がより統一化されるようになりました。
開発者間での実装のばらつきがなくなることで、より品質の高いソースコードを維持できるようになりました。
決められたルールを作ることで開発の時間短縮、結果開発コストの削減になります。
MVVMとは?#
MVVMとはView 、ViewModel、Modelという3つの要素を持った実装パターンのことです。
これにより、ビジネスロジック(DBとの連携、データの状態変化の役割部分)とプレゼンテーションロジック(UI、文字やデータを表示する部分)を分業化できます
まとめると、MVVMパターンの実装を採用することで以下のようなメリットが得られます。
- 役割をソースコードレベルで分けることで変更による影響を最小限に押さえられる
- UI、ロジックを分業化することで、変更箇所が特定しやすくできる
MVVMの処理フロー#
上記の図は「View、ViewModel、Model」のそれぞれの役割を表しています。
- Viewは現在のデータの状態を表示する
- ViewModelはViewデータの紐付けとViewに関連するコマンドをModelに渡す
- ModelはViewModelからコマンドを受けDBに対して実際にクエリを実行する
MVVMを用いた場合のAPIの処理の例#
例えば「会員登録をする」というボタンを押し、会員登録APIが実行される場合、MVVMパターンだと以下のような感じで分業されるかと思います。
- Viewから会員登録APIの命令を受け取る
- ViewModelで対象となるユーザデータを変数に格納し、データの準備をする
- Modelに登録対象となるユーザデータとコマンドを渡しクエリを実行する
MVVMのビジネス的なメリット#
このように分業することで業務の分業化 => 作業の効率化に繋がるのです。
結果的に変更に強いソースコードとなり、お客さん側もより柔軟にアプリの仕様変更を考えられるようになります。
結果、プロジェクトの全員がみんなが幸せになると言うことですね。
さいごに#
ここまでお読みいただきありがとうございました。
私のブログ記事を読んでいる方の中には海外転職・海外移住への興味がある方もいらっしゃるかと思います。
私自身ダナンで働き始めて7年目になりますが、海外就職を実現するために大事なのは英語力と開発現場で働いた経験だと感じました。
もし今後海外移住・海外就職を本気で実現させたい方はぜひこれらのサービスを活用してみてください。
レアジョブ - 実務で使える英語力を身につけよう#
レアジョブ英会話は英会話力の向上に特化したサービスです。 私の友人もレアジョブを通じて0から学習を続け、現在はベトナム人のエンジニアとも英語でコミュニケーションが取れるレベルまで英会話力を伸ばすことができました。
レアジョブが選ばれる理由は多岐にわたりますが、主な理由としては下記3点が考えられます。
- 優秀な講師陣:公用語が英語であるフィリピン人の方が講師となり、生きた英語を身につけることができる
- 豊富な教材: 5,000以上の教材を提供しており、学習者のレベルや目的に応じて最適な教材を選べます。
- 安心のサポート体制:初心者でも安心して始められるように、日本人カウンセラーが学習のサポートをしてくれます。
海外移住計画の第一歩として、スピーキング力を身につけたいと考えている方は、ぜひこちらの無料体験を試してみてはいかがでしょうか。