UIXHERO

アーキテクチャパターン|エンジニアリング

システムをどう区分けし、どう繋ぐか。「MVC」や「マイクロフロントエンド」など、開発の地図となる大きな「間取り」の指針。

2026年3月22日
更新: 2026年8月27日
5
by Dengen Yosho(DGYS)

この技術でできること

  • プロジェクト全体で「どこに何を書くべきか」の迷いをなくし、大人数での開発を可能にする
  • データの流れを一方通行(単方向データフロー)にすることで、バグや表示の矛盾を根本から防ぐ
  • アプリの規模が大きくなっても、システムが崩壊せずに拡張し続けられる(スケーラビリティ)

: 大規模なサービスで「MVC」や「単方向データフロー」というアーキテクチャを採用すると、特定の画面での処理がシステム全体を壊すことがなくなり、複数のチームが安全に同時に開発を進められるようになります(※より高度な例として、別々の技術を組み合わせるマイクロフロントエンドという手法もあります)。


なぜ難しいか

「目に見えない地図(ルール)」であり、一度決めたら途中で変更するのが最も困難な領域だからです。

住宅建築における「間取り図と骨組み」のようなものです。壁紙は後から張り替えられますが、柱の配置(アーキテクチャ)は後から動かせません。そのため、プロジェクトの初期に「プロダクトがどれくらい複雑になるか」を見越して、MVC、レイヤード・アーキテクチャなどの適切な設計思想を選ぶ高度な判断が求められます。


設計プロセスの判断ポイント(Before/After)

パターン: 状態と表示の矛盾(状態管理の崩壊)

Before(現実の悪い例): アーキテクチャの明確なルールがないまま各画面を作り進めた結果、「詳細画面のデータを更新して一覧画面に戻ったのに、一覧側の情報の表示が変わっていない」というバグが頻発する。 → データ(Model)と見た目(View)がそれぞれ勝手に手を取り合って値を更新(双方向バインディング等の乱用)しているため、誰が正しいデータを持っているのかエンジニアにも追えなくなる。

After(現実的な整理): 単方向データフロー(Fluxなどのパターン)という明確なアーキテクチャを敷く。 「ユーザーのAction → Store(状態の中央管理)を更新 → View(UI)はStoreを反映するだけ」という一方通行のルールの下でシステムを構築する。

なぜ改善されるか(なぜ現実的か): 「UIがデータを直接書き換える」ことを物理的に禁止し、必ず中央のシステム(Store)を一度通すというができることで、データとUIの矛盾が原理上起こらなくなるからです。

代替手段: アプリの要件が非常に小規模な場合(ペライチのなど)は、大げさなアーキテクチャを採用せず、あえてコンポーネント内にローカルで状態を持たせる(KISS原則)判断をする。


アンチパターンと衝突(デザイナー × エンジニア)

❌ 「ただこの小さい機能を追加したいだけなのに、なんでそんなに時間がかかるの?」

デザイナーの視点: 「プロフィールの横に『現在のオンライン状態(緑の点)』を表示する」というUIを足しただけなのに、エンジニアから「アーキテクチャの制約で数日かかる」と言われる。(品質=機能の素早い追加) エンジニアの視点: 採用しているアーキテクチャにより、「オンライン状態」というグローバルなリアルタイムデータを、プロフィールのローカルなUIに届けるためには、Storeの再設計やWebSocketの層から繋ぎ直す必要がある。(品質=システムの根幹ルールの厳守)

なぜ衝突するか(品質の定義差): デザイナーは「見た目の変更量=工数」と考えますが、エンジニアは設計された「データの通り道の変更量=工数」と考えているためです。

どう合意するか:

  • デザイナーは現在地(今のアプリはどんなアーキテクチャで動いているか、どの変更が重いのか)の「間取りの癖」をエンジニアにヒアリングする。
  • エンジニアは「このアーキテクチャでは、こういうUI変更(広範囲にデータを連携するもの)は苦手だ」という制約を事前に共有しておく。

実践チェックリスト

最低ライン(Must)

[ ] 今のプロジェクトがどんなアーキテクチャ(MVC、Fluxなど)を採用しているか、名前くらいは聞いたことがある [ ] 見た目上は小さな変更でも、「データの通り道」がない場所に新しいデータを持ってくる仕様は工数がかかると知っている

理想ライン(Better)

[ ] 「Model(データ)」「View(UI)」「Controller/Presenter(つなぎ)」の役割分担を理解してUI設計ができる [ ] チームが採用したアーキテクチャの「得意なこと・苦手なこと(制約)」に合わせて、実現可能なを提案できる


関連技術

前提となる技術

  • SOLID原則 — クリーンな設計図を作るための、中核となる具体的な原則

まず読むべき技術

  • 状態管理 — アーキテクチャの中でも、現代のUIにおいて一番複雑な「データの持ち方」

まとめ

  • この技術の本質: データの流れと責任の所在を明確にし、システムがカオスになるのを防ぐ「大きなルール」
  • UXへの影響: システムが安定して拡張できる基盤ができることで、「壊れにくい、常に進化し続ける体験」を提供できる
  • 実務での判断軸: 「画面上の気軽な思いつきが、裏側を流れる『データの大きな川(設計ルール)』に逆らっていないか?」
  • 次に学ぶべき技術: 状態管理(アーキテクチャの中で、現代のエンジニアが最も頭を悩ませるポイントを知る)

目的別のおすすめ:

更新のお知らせ

サイトに載せていない実例や、新しい記事のお知らせはこちらで出しています。

読んだ内容を、自分の画面に当てるとき

UIXHEROは、記事を書くほかに、画面の検品・判定、デザインシステムの構築、実装と改善の伴走を受けています。何を頼めばいいか決まっていない段階の相談も、同じ窓口で受けます。

UIXHEROに頼めることを見る

※ 記事の内容についての質問や、書いてほしいテーマの要望も同じ窓口で受けています

記事をシェア

メールでお知らせを受け取る

最終更新: 2026年8月27日

この記事を書いた人

Dengen Yosho(DGYS)

Dengen Yosho(DGYS)

UI/UXデザイナー兼デザインエンジニア デザイン歴25年以上 情報設計〜UIデザイン〜React/TypeScriptによる実装までを一気通貫で担当 大手企業のDXプロジェクトや決済アプリ領域で、デザインリードとして改善と構築を経験 現在はフリーランスとして、プロダクトのUI/UX改善とデザインシステム構築を支援 長年の実務の中で感じてきたのは、 「良いUI」はセンスではなく、再現可能な判断の積み重ねであるということ UIXHEROは、 心理学や行動科学の知見を、現場で使える設計言語に翻訳するための場所 関心領域は「ユーザーの行動が変わるUI」 人の認知・注意・意思決定の構造を理解し、 “なぜそのUIが機能するのか”を言語化することを目指している

あわせて読みたい

この記事に関連する記事をご紹介します

API設計|エンジニアリング

デザイン(画面)とデータ(サーバー)をつなぐ契約書。通信の回数と重さが、そのままアプリの体感速度を決定する。

2026年3月22日
6

コンポーネント設計|エンジニアリング

UIパーツの責務と分割を定める技術。再利用性と合成可能性が、デザインシステムと実装をつなぐ。

2026年3月22日
7

SOLID原則|エンジニアリング

「硬直化」を防ぎ、変更に強く壊れにくいシステムを作るための5つの強力な設計原則。

2026年3月22日
6

もっと深く知りたいですか?

ここに掲載されていないトピックについても、リクエストがあれば解説記事を追加します。 わかりにくい点や、具体的な事例について知りたいことがあれば教えてください。

リクエストを送る