APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

React 始めました(10年使ったPHPからの切り替え)

こんにちは、CL事業部の長谷川です。

今回は、10年間PHPとjQueryでWebアプリを書いてきた私が、Reactを始めた話です。

初めに

Reactとは? 🧐

Webアプリ(Webアプリケーション)を作成するためのライブラリのことです。

JavaScript をベースにしつつ、実際はTypeScript という言語で記載するため、コンパイルが必要になります。

反面、型をしっかり定義する必要があるため、C言語のように事前のエラーチェックができ、バグを生みにくいのが特徴です。

今回の内容は? ☝️

10年間PHPとjQueryを使い続けた私が、Reactに切り替えた理由、苦労話などをお伝えします。

同じような切り替えの悩みを持った方、
長年エンジニアをやってきて新しい言語を学ぶ方、の参考になれば幸いです。

  • CSS も bootstrap から tailwind に切り替えていますが、詳細はまた別のお話で
  • バックエンドは別担当が作成するので、今回は割愛します

PHP時代

2010年代前半は人気があった 😊

Webアプリを作成できる言語のPHP、 そしてJavaScriptのライブラリであるjQuery。

どちらもインタープリター言語なので、以下のような特徴があります。

  • 高速に開発ができる
    • 型の定義が不要
    • DOM 操作で直接UIのパーツをいじれる
  • アジャイル案件と相性がいい

なので、2010年代中頃までは人気があり、私の周りのWebエンジニアもよく利用していました。

時代は変わった 🕐

しかし、2010年代後半になってくると、
Webアプリ開発の世界では、React や Next.js の名前をよく耳にするようになりました。

2020年代に入ると、脆弱性対策が重要視されるようになり、
エラーを生みやすい非コンパイル言語のPHPやjQueryは下火になってきます。

自分の現場でもReactの流れが 😮

2025年、ついに私のいる現場でもReactを押す流れがでてきました。

現場でのReactの主な推薦理由は以下の通りです。

  • フロント側でも脆弱性対応は必要
  • 業界のナレッジが多い

とはいえ、10年間もPHPとjQueryでメンテしてきたものを変えるのは大変。

そして、新しい技術に踏み出すのも、覚悟が必要です。

なので、サービスの一部の機能だけを切り離し、まずはそこからReact対応していく ことにしました。

React 始めます

使用する技術 💻

  • React SPA (シングルページアプリケーション)
    • SPAとは、単一のWebページだけで動作するWebアプリケーションのことです
  • 特定のライブラリは不使用 (標準の router, form を使用)

ドキュメントを読んでも、全く分からない 😟

Reactを導入してみたはいいものの、
公式ドキュメントや関連記事を読んでも、まったく頭に入ってきませんでした。

  • DOMの直接操作禁止
  • 状態管理して Hook で再描画
  • React Router でパスを決める
  • コンポーネント化!
  • etc

これだけでも、jQuery 出身の私にはチンプンカンプンです。。

日本語で30年生きてきた人が、急に英語だけで話さないといけない環境におかれた、ような感覚でした。

生成AIに書かせてみた 🧠

ゼロから書くのは厳しい。
と感じた私は、チームで相談し生成AI(以降AIと表記)の活用に行きつきました。

最近流行りの、コードを書いてくれる GitHub Copilot というものを使用。

Penpot で作ったトップページをサクッとReactで書いてくれました。

  • Penpot とは?
    • フロントエンドのレイアウトを作るツールです
    • UI の操作だけで作れるため、コードを書けなくても使えます

そのまま採用するのはダメ ❌

とはいえ、AIが書いたコードを「そのままサービスに採用!」というのはいけません。

  • AIが書いたものでも、当然レビューが必要
  • 自分で確認もせず、そのままレビュアーに依頼するのは失礼
  • コードが目的に合っているか、拡張性やプロジェクトのお作法に則っているか

この辺りは抑えておくべきです。

特に、レビュアーの立場になって考えると、
「AIが書いたコードはシステム的で読みにくいし、AIで書いた人に指摘しても、よく分からない、と返されたりするな。。」
と納得しました。

AIから学ぶ

AIで書けたとしても、言語の勉強は必要 🎓

この点は開発者の中でも意見が割れました。

ある人は、

🙂「AIで書けるのだから、言語は深く学ばなくて良いのでは?」

この意見には私も当初は賛成でした。

ただ、React経験者の方や、AIを開発で活用されている方の意見では、

🥸「前提知識を持っておかないと、細かいところの制御や指示もできない」

という声もありました。

なので、AIで書きつつも、Reactの勉強を並行して行うことにしました。

コードから学ぶ 📄

開発経験のある方なら、新規言語の習得を、
以下のような実践方法で覚えた方もいらっしゃるかと思います。

  • ドキュメントは浅く読む(全て読まず、軽く概念だけ理解)
  • 既存のコードを読んで構成を理解(インプット)
  • 既存のコードを改修して覚える(アウトプット)

私はこの方法で12年ほどやっています。

ただ、この方法にはいくつか問題点もあります。

  • ドキュメントは全部読まないので、重要なポイントを見逃すことがある
  • そもそも現場に配属されないと、既存のコードが存在しない

AIとの問答 🗣️

そこでAIを活用しました。

  • 既存コードの代わりに、AIが作成したコードを使う
  • 分からないコードは都度AIに確認し、ReactやTypeScriptのお作法としてメモを取る

とにかく、分からない部分は確認します。

昔はGoogle検索で記事を探していましたが、
それを 「AIで調べて確認するようになったんだな」 という感覚です。

あえて自分で書く ✍️

コードの確認と追加の改修は自分でやります。

  • あえて自分でやることで、先ほどインプットした内容をアウトプットして覚えます
  • 改修方針やコードのチェックは、随時AIに確認します
  • バッチ的な作業(同じことの繰り返し)は、一度だけ自分でやり、あとはAIで書きます
    • 作業効率化のため

現在の成果

概念は理解できてきた

手動で書きつつ、都度不明点を確認したので、
JSXやコンポーネント、HookといったReactの概念を理解することができました。

Reactの記事が分かるようになった

当初は何が書いてあるのか分からなかった技術文章も、
概念を理解し、コードを直接触ることで、
意図を理解して読めるようになりました。

今後の目標

  • API と連動した業務ページを作るところまで進める
    • Loader, Action, エラー境界などの概念を理解する
  • Reactでの初回リリースを終わらせる
  • AIでページの作成を自動化してみる

  • 関連記事

techblog.ap-com.co.jp