2022年9月23日金曜日

アーキテクチャとは?

  就活にあたり、スキルシートを作成している中で、作成したアプリの「アーキテクチャ」なるものを記述する項目があり、そもそも言葉の意味が分からない・・・。

 軽ーく調べてみると、「基本設計やシステムの構造であり、個別の実装そのものではない」とあり、尚更理解不能に・・・そこでメンターさんに聞いてみたところ、「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なんだなぁと思った。
・・・理解不足?他にも学ぶことが沢山ありそう!

出典


flutterについて、学んだことなど

Swiftについて学んできたため、つい比較してしまいがちです。 SwiftUIと比較して、書いてみました。 似ているようで似ていない flutterには、SwiftUIにおける「View」という概念が、「Widget」と呼ばれるものになる SwiftUIのようにWidgetの中に...