Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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、けっこういいやつじゃん?