すべての記事

フロントエンドPMが知っておくべきReact開発の考え方

フロントエンドPMが知っておくべきReact開発の考え方
フロントエンドPMシリーズ 第2回 / 全5回

フロントエンドPMが知っておくべきReact開発の考え方

【実装しない人向け】

フロントエンドPMは、Reactのコードを書く必要はない。

ただし、Reactで何が起きているかを理解していないと、設計判断ができない。

この記事では、

  • コンポーネントの書き方
  • hooksの使い方

は一切扱わない。

代わりに、React前提でPMが判断すべきポイントだけを整理する。


なぜReactを知らないPMは詰まるのか

React開発でPMが詰まる瞬間は、だいたい決まっている。

  • 「それ、React的にどうなんですか?」と言われる
  • 状態をどう持つかで議論が止まる
  • 修正の影響範囲が読めない

原因はシンプル。

Reactの"設計単位"を知らないまま、画面や機能の話をしているから。


React開発の基本単位は「画面」ではない

PMが最初に理解すべきこと。

Reactの基本単位は画面でもページでもない。

コンポーネントだ。

コンポーネントとは何か(PM向け定義)

  • 見た目
  • 振る舞い
  • 必要なデータ

をひとまとまりにした責任単位。

つまりReactでは、

「どこまでを一つの責任として扱うか」

を決めることが、そのまま設計になる。


PMが判断すべきコンポーネント分割の観点

ここがSEO的にも刺さる部分。

分けていいサイン

  • 表示条件が違う
  • 使い回される
  • 仕様変更が入りそう
分けないと、修正コストが指数関数的に増える。

分けない方がいいサイン

  • 見た目以外の差がない
  • 状態を共有しすぎる
  • 分けた理由を説明できない
分けすぎると、構造が理解できなくなる。

PMは「きれいに分ける」ではなく
「将来壊れにくい単位」を選ぶ。


Reactにおける「状態」は設計そのもの

React開発での最大の設計論点は、状態(State)だ。

ここでPMが判断を間違えると、あとから取り返しがつかない。

PMが最低限理解すべき状態の種類

PM判断: 自由に持っていい

① 表示のための状態

  • ローディング中
  • 開閉状態
  • 入力途中
PM判断: 二重管理しない

② API由来の状態

  • 取得したデータ
  • 更新結果

フロントで正を作らない

PM判断: フロントに持たせない

③ ビジネス状態

  • 進行ステータス
  • 権限
  • 確定フラグ

バックエンド責務


React PMがやってはいけない判断

現場で多い地雷。

  • 「とりあえずフロントで持ちましょう」
  • 「UI側で吸収しましょう」
  • 「後で整理すれば大丈夫です」

Reactは、後で整理しにくい構造を持つ。

一度持たせた状態は、必ず他のコンポーネントに伝播する。

PMが止めるべきサイン。

PMがレビューで見るべきReact設計の質問

コードは見なくていい。

この3つを聞くだけでいい。

  1. この状態は、どこで生まれた?
  2. それが変わったら、どこに影響する?
  3. 将来この仕様が変わったら、どこを直す?

ここで即答できない設計は危ない。


React前提でのPMの立ち位置まとめ

フロントエンドPMは、

Reactを書く人 ではない。
Reactで壊れにくい判断をする人だ。

  • コンポーネントは責任単位
  • 状態は設計そのもの
  • 取り消せない判断はフロントに置かない

これを理解しているだけで、
React案件の炎上率は激減する。


フロントエンドPMシリーズ 第2回 / 全5回