PHP Manual

技術をどう選ぶか?JavaScriptに切り替えるタイミングは?

11. 02. 2023

正しい技術を選択することは、上級開発者になるための必須条件です。なぜなら、アプリケーションの現在の技術的な状態、開発上の方向性、現在のチームの知識、求人市場で一般的な知識、各技術のコスト、運用にもたらすリスク、技術の安全性と安定性、そして最後に、例えば5年後に現在のチームの80%が交代したときに、開発者が何に興味を持つかなどを考慮しなければならないからです。

PHPで開発している大企業6社を経験しました。長い目で見て他の技術に乗り換えようとしているのは2人だけで、他の人はそのままです。それはそれでいろいろと問題がありますね。例えば、現在O2社で開発している企業向けプロジェクトで、プラハのオフィスに通勤する必要のあるシニアPHP開発者を探していますが、この5年間でPHP開発者市場がいかにクリアになったかを実感しています。PHPはもうクールじゃないし、やりたがる人もあまりいない。後輩が少ないんですよ。

若い人たちにインタビューしていると、今はReactをはじめ、一般的に「薄い」技術が流行っているように感じるんです。アプリケーション・アーキテクチャの観点からは、この方向性を早期に発見し、適応するための時間を確保することができれば意味があります。Latteでウェブレイアウトやフォームの複雑なパウンディングを行う場合、すでに少し複雑な課題に対して実質的に平凡な開発者が必要ですが、Reactでは基本的に1ヶ月前に始めたジュニアが、将来のソリューションでまだあまり失敗しないようにすればいいだけです。

Reactは、フロントエンドが存在するために書かれたバックエンドの大きな塊を、そもそも捨てることができるのです。つまり、開発コストが安くなり、おまけに開発者がPHPの設計言語からくる複雑な問題に何度も対処する必要がないため、新機能をより早く提供できるようになるのです。

ほとんどのWebアプリケーションは、もはやバックエンドを必要としないか、最小限のバックエンドしか必要としません。APIエンドポイントをNode.js(これもjavascriptをベースにした技術)で公開すると、それまでReactしかやっていなかった開発者が、同じ言語だからバックエンドの一部も書けるようになります。

過去5年間に開発したプロジェクトを深く分析すると、Node.jsに欠けているものがいくつかあるだけで、今でも一部の操作にはPHPを使っています。

名付けて。

  • ドクトリン(および一般にオブジェクト・エンティティに基づくリレーショナル・データベース・アクセス)
  • メールの送信と管理
  • SOAP API(残念ながらまだ残っていることがあります。)
  • セッション(例えばJWTトークンに置き換える必要があります。)
  • PHPで書かれた複雑なレガシーロジックがあり、簡単にリファクタリングできない
  • データの変異が必要な複雑なデータ構造の高速処理
  • 新しいことをするために再教育する必要があるチームの既存の人たち

しかし、その後、Node.jsが登場し、残りの部分をより良くできるようになりました。例えば、こんな感じです。

  • アプリをそのままクラウドにオフロードする機能
  • 同じ機能をはるかに(もしかしたら2倍)安く開発できる
  • BEとFEで同じロジックで、コードを2回書く必要はありません。
  • REST APIエンドポイント
  • 一度に複数のコードを並列に呼び出す
  • HTTP レスポンスを送信する機能はあるが、コードは実行され続ける
  • クロニー
  • クラウドサービスと連携する図書館
  • 巨大なアプリケーションを起動する必要がないため、応答速度が大幅に改善される
  • 完全に機能するパラダイム(例えばJSで不要なDIを取り除くことができる)
  • フォームやデータを扱う
  • 容易なアップデートと活発な開発者コミュニティ

Doctrineについてのコメント: JSにはデータベースを扱うためのライブラリがたくさんありますよね。あるいは、Mongoのような新しいパラダイムも。データ処理の方向性が良いですね。一方で、タブラーリレーショナルデータベースは決してなくならないと思っています。何千万件ものレコードを管理するような大きなプロジェクトでは、使い慣れた伝統的なテクノロジーが必要です。例えば、カラム(プロパティ)を追加したいのに、マイグレーションスクリプトですべてのエンティティを再マッピングするというのは、私にとってはかなり怖いことなのです。

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
9.
Status:
All systems normal.
2024