SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2025 セッションレポート

バックエンドの知識が活きるReact入門──オブジェクト指向で学ぶフロントエンド

【13-C-9】バックエンドエンジニアのためのフロントエンド入門

  • X ポスト
  • このエントリーをはてなブックマークに追加

設計思考の違いからフロントエンドを理解する

 まず取り上げるのは、「オブジェクト指向」と「コンポーネント指向」の2つの設計パラダイムだ。前者はバックエンド、後者はフロントエンドで主に用いられる設計思考として、それぞれ異なる構造と役割を持っている。

 パンダ氏はこの比較に入る前に、「そもそもフロントエンドとは何か?」との問いを立て、Webフロントエンドの役割から話を始めた。

 Webアプリケーションは、クライアントとサーバーの通信によって成り立っている。そのうちフロントエンド、すなわちクライアント側の役割は、ユーザーとシステムをつなぐ「接点」として機能することだ。具体的には、ユーザーが目にし、操作するインターフェース──つまりUI(ユーザーインターフェース)やUX(ユーザーエクスペリエンス)に相当する部分がフロントエンドとなる。

 ここで引用されたのが、『オブジェクト指向UIデザイン』における「UIとは、ユーザーとその関心対象(オブジェクト)を直接接着するもの」という定義だ。現在主流のGUI(グラフィカル・ユーザ・インターフェース)も、このような思想をもとに発展してきた。

UIは人とソフトウェアをつなぐ接点。フロントエンドはその橋渡し役
UIは人とソフトウェアをつなぐ接点。フロントエンドはその橋渡し役

 パンダ氏は、象徴的なGUIの事例としてAppleのクラシックなUIを取り上げた。このUIでは、画面上にフォルダやゴミ箱といったアイコンが並び、それをマウスで操作することで、ユーザーが直感的に動作を理解・実行できる。ここからも分かるようにGUIの基本は、「操作対象となるオブジェクトを視覚的に提示し、ユーザーがアプローチできるようにすること」にある。

GUIが広く普及するきっかけとなったAppleのUI
GUIが広く普及するきっかけとなったAppleのUI

 こうしたGUIをWeb上で実現するために用いられるのが、HTML、CSS、JavaScriptといった技術だ。ただし、CSSやJavaScriptはグローバルスコープになりやすく、プロジェクトが大規模になるにつれて管理が煩雑になりがちである。

 そこで登場するのが「コンポーネント指向」だ。コンポーネント指向とは、「UIを小さな部品に分割し、それらを組み合わせてアプリケーションを構築する考え方」とパンダ氏はまとめる。ボタンやフォームといった要素を再利用可能な“部品”としてまとめ、それらを組み合わせることで、アプリケーション全体を構成していく。この構造によって、フロントエンドのスケーラビリティが確保されるわけだ。

HTMLのツリー構造を分割し、コンポーネント単位でスコープを整理する
HTMLのツリー構造を分割し、コンポーネント単位でスコープを整理する
UIとその操作をひとまとまりで扱うのがコンポーネント指向。小さな単位を組み合わせて全体を構成する
UIとその操作をひとまとまりで扱うのがコンポーネント指向。小さな単位を組み合わせて全体を構成する

 では、もう一方の「オブジェクト指向プログラミング(OOP)」はどのような思想なのか。

 OOPでは、各オブジェクトがそれぞれの役割を持ち、必要な処理を担うことで、複数のオブジェクトを組み合わせてアプリケーションを構築していく。このアプローチによって、システム全体のデータフローを意識した設計が可能になる。

 この仕組みを視覚的に説明するため、パンダ氏は「子どもがブロックを組み合わせて車を作る様子」を例に挙げた。各ブロックがひとつひとつのオブジェクトに対応し、それらを組み合わせることでシステム全体が完成する──まさに、OOPが「ビルディングブロック(積み木)的な設計」であることを象徴するたとえだ。

OOPは、オブジェクトを部品として組み合わせる“積み木”的な発想
OOPは、オブジェクトを部品として組み合わせる“積み木”的な発想

 ここで、両者の共通点と相違点を整理してみよう。

 共通点は、「小さな単位を組み合わせてアプリケーションを構築する」こと。こうした構造は、再利用性・保守性・拡張性に優れており、結果として高いスケーラビリティを実現できる。

 一方で異なるのは、どこに主眼を置くかだ。コンポーネント指向はUIの構造と操作の管理に焦点を当てるのに対し、オブジェクト指向はデータ構造とその操作に重きを置く。つまり、前者は“人間との接点”、後者は“データとの関係性”にフォーカスした設計だと言える。

 設計思考の基盤にあるこの違いを理解すれば、バックエンドの知識と経験を活かしてフロントエンドへ応用する道筋が見えてくる。「OOPはフロントエンドに挑む際の“学習資産”になり得る」というパンダ氏のテーゼが、現実味を帯びてくる瞬間だ。

次のページ
Reactコンポーネントを解剖する:データの流れと構造の理解

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2025 セッションレポート連載記事一覧

もっと読む

この記事の著者

夏野 かおる(ナツノ カオル)

 博士。本業は研究者。副業で編集プロダクションを経営する。BtoB領域を中心に、多数の企業案件を手がける。専門はテクノロジー全般で、デザイン、サイバーセキュリティ、組織論、ドローンなどに強みを持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21433 2025/06/27 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング