開発者を悩ます「ソフトウェアアーキテクチャ選定」 迷った時に使える3つの判断基準:アプリ開発でテストに強いアーキテクチャはこれだ!(1/2 ページ)
さまざまなソフトウェアアーキテクチャが存在する中で、プロジェクトに合ったものを選ぶには何をよりどころにすれば良いのか。こうした開発者の悩みに対して、本連載を通してその答えを探る。新規アプリ開発を発注するなどプロジェクトに関わる際の参考としてほしい。
近年、AndroidやiOSなどのモバイルアプリ開発で使用されるソフトウェアアーキテクチャにはさまざまな種類があり、「この開発プロジェクトに最適なアーキテクチャはどれか」と悩む開発者の方も多いのではないでしょうか。
そこで本連載(全5回)では、アプリ開発現場でよく使われる代表的なソフトウェアアーキテクチャ「MVC」「MVP」「MVVM」「Flux」「Clean Architecture」それぞれの基礎を解説するとともに、テストフェーズを見据えたアーキテクチャ選定のコツを紹介します。
著者紹介:石黒 邦宏
デジタル・マジック・ラボでインターネット経路制御運用に関わり、オープンソースウェアで経路制御を実現する「GNU Zebra」を開発。1999年IP Infusionを共同設立し、CTOに就任。2009年Access CTO、2015年アプリックス CTOを経て、2018年デジタルハーツホールディングスCTOに就任。
「ソフトウェアアーキテクチャ」とは?
ソフトウェアアーキテクチャとは、プログラム構造を抽象化し、コードをシンプルに扱うための概念です。その最大の特長は、ソフトウェアのUI(ユーザーインタフェース)や内部ロジックといった機能コンポーネントをそれぞれ分離し、独立して扱えるという点です。それぞれが独立しているため、各機能を同時並行で開発することができ、プログラム変更があった場合も他のコンポーネントへの影響を最小限に抑えられるといった利点があることから、現在多くの開発現場でソフトウェアアーキテクチャが活用されています。
なぜアプリ開発にMVCが「使えない」のか
ソフトウェアアーキテクチャという概念は、1970年代に生まれました。実は意外と古い歴史を持つ概念です。この概念を一躍有名にしたのが、1980年代初頭に登場した「MVC」です。MVCは、「Model」「View」「Controller」の頭文字を取ったもので、デザインやレイアウトなどUIを制御する「View」という要素が初めて取り入れられたアーキテクチャです。Viewを取り入れた背景には、「Windows」や「Macintosh」といったGUI(グラフィカルユーザーインタフェース)で操作するOSの普及がありました。この頃から、徐々にUIの重要性が高まり、MVCは多くのソフトウェア開発で用いられる代表的なアーキテクチャとなりました。
Copyright © ITmedia, Inc. All Rights Reserved.