就活にあたり、スキルシートを作成している中で、作成したアプリの「アーキテクチャ」なるものを記述する項目があり、そもそも言葉の意味が分からない・・・。
軽ーく調べてみると、「基本設計やシステムの構造であり、個別の実装そのものではない」とあり、尚更理解不能に・・・そこでメンターさんに聞いてみたところ、「MVCになるかと思うが、面接でも高確率で質問される事項であり、概念や具体例など、知識を得た方が良い」というアドバイスを頂けたので、調べたことをまとめてみました!ザクっと!
アーキテクチャとは?
元は建築業界における、建築様式・工法・構造などを表す言葉。
ITの分野では、コンピュータやソフトウェア、システム構成要素などにおける、基本設計や共通仕様、設計思想の指す。個別の仕様や実装ではなく、抽象的、基本的な構造や設計、動作原理などを表す。
代表的な用語
- ソフトウェアアーキテクチャ ⇦ここが関係しそう?
- エンタープライズアーキテクチャ
- システムアーキテクチャ
- マイクロアーキテクチャ
- モデル駆動型アーキテクチャ
ソフトウェアアーキテクチャとは?
プログラム構造を抽象化し、コードをシンプルに扱うための概念。
特徴:機能コンポーネント(UIや内部ロジック)を分離・独立して扱える
メリット:プログラム変更があった場合、他コンポーネントへの影響を抑えられる
MVC(Model -View-Controller)とは?
ソフトウェアを、処理(Model)・表示(View)・入力伝達(Controller)の三要素に分割し、ソフトウェア内部データをユーザーが直接参照・編集する情報から分離する。
各要素間の依存性が強く、変更に対する柔軟性が低いデメリットがある。(プログラム修正やテストに時間を要する)
(構造)
Model:データの処理
View:UIへの出力、ユーザーが触れる(入力)部分
Controller:ViewやModelの連絡・制御
(流れ)
ユーザー入力>View>Controller>Model処理>Controller>View出力
MVVMとは?なにが違う?
ユーザーが入力した情報と、格納したデータをデータバインディング(VとVMの結び付け)にて自動的に処理するもの。先程のControllerがなく、VM(View Model)からModelに処理を実行させつつViewにも値を更新させる。
結論
MVCとMVVMの処理の違いがわかり、自身のアプリはMVCなんだなぁと思った。
・・・理解不足?他にも学ぶことが沢山ありそう!