Slide 1

Slide 1 text

フロントエンドがTypeScriptなら、 バックエンドはPHPでもいいじゃない @hanhan1978 TSKaigi 2025

Slide 2

Slide 2 text

@hanhan1978 名前 富所 亮 所属 株式会社カオナビ CTO室 エキスパート BackEnd Re-architecturing Team (BERT) Blog https://blog.hanhans.net Podcast https://podcasters.spotify.com/pod/show/yokohama-north-am 2

Slide 3

Slide 3 text

このトークなんなの?

Slide 4

Slide 4 text

バックエンドに興味をもってもらう

Slide 5

Slide 5 text

バックエンドに興味をもってもらう PHPの話はオマケ

Slide 6

Slide 6 text

例えば、弊社の場合

Slide 7

Slide 7 text

PHPのフルスタックフレームワーク製 Multi Page Application + jQuery

Slide 8

Slide 8 text

アプリケーション構成の変遷 既存機能 MPA (jQuery) 新規機能 SPA (React) 一部はSPAにリプレース 既存アプリケーションは APIとして利用

Slide 9

Slide 9 text

チーム構成の変遷 バックエンドエンジニア多数 フロントエンドエンジニアがじわじわ増加 職能単位のチーム プロジェクト単位の混成チーム

Slide 10

Slide 10 text

フロントエンドエンジニアの状況 ● React部分の実装がメイン ● UI周り、デザインシステムのメンテ ● アクセシビリティの対応

Slide 11

Slide 11 text

フロントエンドエンジニアの状況 ● React部分の実装がメイン ● UI周り、デザインシステムのメンテ ● アクセシビリティの対応 バックエンドへの関与がほぼ無い

Slide 12

Slide 12 text

というわけで

Slide 13

Slide 13 text

バックエンドに興味をもってもらいたい (切実)

Slide 14

Slide 14 text

目次 1. フロントエンドとは?バックエンドとは? 2. バックエンドは何で必要なのか? 3. システム構成例 4. フロントエンドとバックエンドは分離すべきか? 5. バックエンドの技術選定 6. あなたにPHPをおすすめする100の理由

Slide 15

Slide 15 text

1. フロントエンドとは?バックエンドとは?

Slide 16

Slide 16 text

昔、フロントエンドエンジニアは いなかった

Slide 17

Slide 17 text

バックエンドエンジニアが JavaScriptも書いていた 今ほどリッチな要素が求められていなかった

Slide 18

Slide 18 text

フロントエンドはいつ生まれた?

Slide 19

Slide 19 text

2010年代前半説 エッジはフロントエンドなのか? バックエンドなのか? について考えてみる - Speaker Deck https://speakerdeck.com/aiji42/etuzihahurontondonanoka-batukuendonanoka-nituitekao-etemiru

Slide 20

Slide 20 text

昔は革命だったインクリメンタルサーチ

Slide 21

Slide 21 text

WEB+DB PRESS ● 2006年10月 Vol.35 Ajaxの定石 ● 2010年12月 Vol.60 jQuery実践入門 ● 2011年8月 Vol.64 JavaScript最前線 ● 2012年4月 Vol.68 Node.js実践入門

Slide 22

Slide 22 text

こうしてフロントエンドは 高度・複雑化して専門分野として確立

Slide 23

Slide 23 text

このような歴史的経緯があるため それぞれの強みが異なる

Slide 24

Slide 24 text

バックエンドエンジニアの強み ● インフラ ● データベース ● サーバー構築 ● CI/CD

Slide 25

Slide 25 text

バックエンドエンジニアの強み ● インフラ ● データベース ● サーバー構築 ● CI/CD ※単純にこれらの分野が職域だという話 ...

Slide 26

Slide 26 text

フロントエンドエンジニアの強み ● HTML/JS/CSS ● アクセシビリティ ● UI/UX

Slide 27

Slide 27 text

フロントエンドエンジニアの強み ● HTML/JS/CSS ● アクセシビリティ ● UI/UX 変化が激しく、キャッチアップも大変。 バックエンドまで領域を伸ばせる人は、そう そういない

Slide 28

Slide 28 text

2. バックエンドは何で必要なのか?

Slide 29

Slide 29 text

BaaS, IDaaSがあれば不要なのでは?

Slide 30

Slide 30 text

バックエンドがないとつらいこと ● セキュリティの担保 ● 非同期処理・ジョブ実行 ● ビジネスロジックの隠蔽 ● 外部システム連携

Slide 31

Slide 31 text

バックエンドがないとつらいこと ● セキュリティの担保 ● 非同期処理・ジョブ実行 ● ビジネスロジックの隠蔽 ● 外部システム連携 時間のかかること、秘密にしたいこと

Slide 32

Slide 32 text

BaaS, IDaaSについて ● メリット・デメリットの慎重な検討が必須 ● アプリケーションの性質や運用体制によって 正解が異なる

Slide 33

Slide 33 text

話の都合上 以降はバックエンドは必要という前提

Slide 34

Slide 34 text

3. システム構成例

Slide 35

Slide 35 text

フロントエンドファーストでの構成例 Next.js

Slide 36

Slide 36 text

バックエンドファーストでの構成例 Laravel + Laravel Vite

Slide 37

Slide 37 text

バックエンドファーストでの構成例 Laravel + Laravel Vite 密結合

Slide 38

Slide 38 text

明確な分離を目指した構成例 シンプル!

Slide 39

Slide 39 text

4. フロントエンドとバックエ ンドは分離すべきか?

Slide 40

Slide 40 text

基本的には分離すべきと考える

Slide 41

Slide 41 text

分離しておく理由 ● Information Leakage ● あとから分けるの無理 ● アーキテクチャーの柔軟性

Slide 42

Slide 42 text

Information Leakage 「モジュールが、自分の責任範囲を超えて 他のモジュールの知識や制約に依存してし まっている状態」 FE と BE が癒着するとツライ

Slide 43

Slide 43 text

あとから分けるの無理 無理

Slide 44

Slide 44 text

アーキテクチャーの柔軟性 ● アーキテクチャー構成が柔軟 ● ビルドプロセスの分割 ● バージョンアップ、脆弱性対応などなど

Slide 45

Slide 45 text

よし、じゃあバックエンドを分離しよう! どの言語にしたらいい?

Slide 46

Slide 46 text

ぶっちゃけどれでもいい ● 要点は責任分離 ● プログラミング言語そのものは次点

Slide 47

Slide 47 text

一回目のまとめ ● フロントエンドの重要性は今後も増す ● バックエンドも依然として重要 ● 特別な場合をのぞき、初手の分離が吉

Slide 48

Slide 48 text

5. PHPをおすすめする100の 理由

Slide 49

Slide 49 text

注意 この先はPHPを安心して選んでもらうた めのPRです 残り10分くらいだとちょうどいい

Slide 50

Slide 50 text

PHPを一言で表現すると 現代におけるプロダクト開発とPHPを選定するワケ #phpkansai - Speaker Deck https://speakerdeck.com/potato4d/xian-dai-niokerupurodakutokai-fa-tophpwoxuan-ding-suruwake-number-phpkansai?slide=58

Slide 51

Slide 51 text

PHPの歴史 JetBrains PHPverse 2025 – Online Event Celebrating 30 Years of PHP https://lp.jetbrains.com/phpverse-2025/

Slide 52

Slide 52 text

PHPの歴史 JetBrains PHPverse 2025 – Online Event Celebrating 30 Years of PHP https://lp.jetbrains.com/phpverse-2025/ 30周年

Slide 53

Slide 53 text

ウェブサイトの言語割合 Usage statistics of server-side programming languages for websites https://w3techs.com/technologies/overview/programming_language

Slide 54

Slide 54 text

ウェブサイトの言語割合 Usage statistics of server-side programming languages for websites https://w3techs.com/technologies/overview/programming_language 2025

Slide 55

Slide 55 text

PHPはハンマーのような単純な道具 PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp https://gihyo.jp/news/report/2015/12/1401

Slide 56

Slide 56 text

PHPの学習曲線(イメージ) 諸説ある

Slide 57

Slide 57 text

機能面

Slide 58

Slide 58 text

シェアードナッシング PHP & Shared Nothing Architecture: The Benefits and Downsides – Tideways https://tideways.com/profiler/blog/php-shared-nothing-architecture-the-benefits-and-downsides

Slide 59

Slide 59 text

モダン化の流れ ● 交差型、合併型、false型... ● Immutable classes, properties ● Attribute

Slide 60

Slide 60 text

モダン化の流れ ● 非対称可視性 ● Property hooks ● レイジーオブジェクト ● などなど....

Slide 61

Slide 61 text

けっこうモダンでしょ?

Slide 62

Slide 62 text

Composer Composer https://getcomposer.org/

Slide 63

Slide 63 text

PHPUnit PHPUnit: The PHP Testing Framework https://phpunit.de/index.html

Slide 64

Slide 64 text

PHPStan Find Bugs Without Writing Tests | PHPStan https://phpstan.org/

Slide 65

Slide 65 text

PHP-CS-Fixer PHP Coding Standards Fixer https://cs.symfony.com/

Slide 66

Slide 66 text

開発状況

Slide 67

Slide 67 text

The PHP Foundation The PHP Foundation — The PHP Foundation — Supporting, Advancing, and Developing the PHP Language https://thephp.foundation/

Slide 68

Slide 68 text

年1回のアップデート PHP: Supported Versions https://www.php.net/supported-versions

Slide 69

Slide 69 text

php.internals php.internals mailing list https://news-web.php.net/group.php?group=php.internals

Slide 70

Slide 70 text

RFCによる機能変更議論 PHP: rfc:immutability https://wiki.php.net/rfc/immutability

Slide 71

Slide 71 text

PHPコミュニティ

Slide 72

Slide 72 text

PHPコミュニティ ● 海外はある程度一定している ● 日本では2023年から謎の盛り上がり... ● 若手も流入してきおり活発

Slide 73

Slide 73 text

ユーザーコミュニティ world-phpcons-history.pdf - Google Drive https://drive.google.com/file/d/14wKvKtVPNtssGyFmlHndsFI3cgp7Uweo/view

Slide 74

Slide 74 text

ほぼ毎月カンファレンス 2025年に開催される全国のPHPカンファレンスのまとめ #PHP - Qiita https://qiita.com/akase244/items/00323a1bfbb6575f0c94

Slide 75

Slide 75 text

これから開催 ● 2025/5/31 PHPカンファレンス新潟 ● 2025/6/28 PHPカンファレンス ● 2025/7/19 PHPカンファレンス関西2025 ● 2025/11/8 PHPカンファレンス福岡2025 ● 2025/11/24 PHPカンファレンス香川2025

Slide 76

Slide 76 text

● 2025/5/31 PHPカンファレンス新潟 ● 2025/6/28 PHPカンファレンス ● 2025/7/19 PHPカンファレンス関西2025 ● 2025/11/8 PHPカンファレンス福岡2025 ● 2025/11/24 PHPカンファレンス香川2025 これから開催 僕と握手!

Slide 77

Slide 77 text

二回目のまとめ PHP、けっこういいやつじゃん?