Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIがUIを作る時代に、フロントエンドエンジニアは何を設計するのか

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 AIがUIを作る時代に、フロントエンドエンジニアは何を設計するのか

ZennのURL: https://zenn.dev/lv/articles/0adaf33f6fc672

AIにUIを作らせると、カード、テーブル、検索フォーム、ステータスバッジ、モーダルはすぐに並びます。

でも、そのUIを実装しようとした瞬間に、「この状態は何種類あるのか」「誰がこの操作をできるのか」「この画面はURLで直接開けるのか」「DBには何を保存するのか」といった問いが出てきます。

AIが作ったUIは、完成品ではありません。
それは、AIが勝手に補った仕様の仮説です。

この資料では、AI生成UIをそのまま受け入れるのではなく、対象、状態、操作、URL、state、DB schemaの観点から読み解く方法を整理します。

Avatar for oga_aiichiro

oga_aiichiro

May 26, 2026

More Decks by oga_aiichiro

Other Decks in Technology

Transcript

  1. 3番の操作の先取りをしちゃうんですけど、ここで言いたいのは、こうやって対象を先に決めると、操作の置き場所が自然に見えてくるよね、ということです ExpenseReport を作成する、提出する、承認する、却下する。 ExpenseItem を編集する、削除する、領収書を添付する など。 操作が、対象の上にきれいにぶら下がります。 --- (飛ばす) なぜEmployeeは操作がないのか

    承認者を選ぶ時にリストから選択する、申請者として自動的にセットされる、これは全部、ExpenseReportの操作の一部としてEmployeeを「使ってる」だけで、Employee自体に何かをしてるわけじゃない。 なぜそうなるかというと、Employeeは経費申請アプリの中で作成も削除もされる対象じゃないんです。HR(人事)システムから連携される従業員マスタで、経費申請アプリは参照する側。この区別が、対象起点で並べると一発で見えてくる。
  2. 4つの問いができたので、最初に見たApprovedバッジを、もう一度読み直してみます。 対象は ExpenseReport(経費申請) 業務状態は draft から pending を経て approved か

    rejected に至る遷移 操作は pending のときに承認者が approve できる 表現は /expense-reports/:id みたいに UI・URL・state・API・DB で同じ言葉で追える。 この4つの答えが、見た目の裏で僕らが決めていることです。
  3. 僕は「その状態がドメイン上の事実か、UI上の都合か」で見ます。 approvedやrejectedは、DBにもAPIにも認可にも関係するので業務状態です。一方で isDetailOpen や selectedReportId や filterStatus は、画面操作のための状態なので React state

    寄りです。 もちろん境界が曖昧なこともありますが、Reactのstate設計でも、矛盾するstateや冗長なstateを避けることが重要、と公式ドキュメントで説明されています。 なので、まず業務状態を整理して、そのうえでUIに必要な最小のReact stateへ写す、という順番で考えると崩れにくいと思っています。