$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-...
Search
Ryo Tomidokoro
May 24, 2025
Technology
8
13k
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-not-bad
TSKaigi2025の登壇資料です
Ryo Tomidokoro
May 24, 2025
Tweet
Share
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
6
2.9k
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
2
1.1k
どうすると生き残れないのか/how-not-to-survive
hanhan1978
17
14k
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
220
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
8
3.3k
集中して作業する技術/how_to_work_deeply
hanhan1978
65
52k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
11k
ADRを一年運用してみた/adr_after_a_year
hanhan1978
8
4.5k
B+木入門:PHPで理解する データベースインデックスの仕組み/b-plus-tree-101
hanhan1978
5
5.7k
Other Decks in Technology
See All in Technology
経営から紐解くデータマネジメント
pacocat
9
1.8k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
14
8.8k
Dify on AWS の選択肢
ysekiy
0
120
段階的に進める、 挫折しない自宅サーバ入門
yu_kod
5
2.1k
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
2
300
MySQL AIとMySQL Studioを使ってみよう
ikomachi226
0
130
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
450
Docker, Infraestructuras seguras y Hardening
josejuansanchez
0
130
Symfony AI in Action
el_stoffel
2
300
Android Studio Otter の最新 Gemini 機能 / Latest Gemini features in Android Studio Otter
yanzm
0
540
IPv6-mostly field report from RubyKaigi 2026
sorah
0
240
Design System Documentation Tooling 2025
takanorip
1
820
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
69
Statistics for Hackers
jakevdp
799
230k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
Optimizing for Happiness
mojombo
379
70k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Site-Speed That Sticks
csswizardry
13
980
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Automating Front-end Workflow
addyosmani
1371
200k
Visualization
eitanlees
150
16k
Facilitating Awesome Meetings
lara
57
6.6k
Transcript
フロントエンドがTypeScriptなら、 バックエンドはPHPでもいいじゃない @hanhan1978 TSKaigi 2025
@hanhan1978 名前 富所 亮 所属 株式会社カオナビ CTO室 エキスパート BackEnd Re-architecturing
Team (BERT) Blog https://blog.hanhans.net Podcast https://podcasters.spotify.com/pod/show/yokohama-north-am 2
このトークなんなの?
バックエンドに興味をもってもらう
バックエンドに興味をもってもらう PHPの話はオマケ
例えば、弊社の場合
PHPのフルスタックフレームワーク製 Multi Page Application + jQuery
アプリケーション構成の変遷 既存機能 MPA (jQuery) 新規機能 SPA (React) 一部はSPAにリプレース 既存アプリケーションは APIとして利用
チーム構成の変遷 バックエンドエンジニア多数 フロントエンドエンジニアがじわじわ増加 職能単位のチーム プロジェクト単位の混成チーム
フロントエンドエンジニアの状況 • React部分の実装がメイン • UI周り、デザインシステムのメンテ • アクセシビリティの対応
フロントエンドエンジニアの状況 • React部分の実装がメイン • UI周り、デザインシステムのメンテ • アクセシビリティの対応 バックエンドへの関与がほぼ無い
というわけで
バックエンドに興味をもってもらいたい (切実)
目次 1. フロントエンドとは?バックエンドとは? 2. バックエンドは何で必要なのか? 3. システム構成例 4. フロントエンドとバックエンドは分離すべきか? 5.
バックエンドの技術選定 6. あなたにPHPをおすすめする100の理由
1. フロントエンドとは?バックエンドとは?
昔、フロントエンドエンジニアは いなかった
バックエンドエンジニアが JavaScriptも書いていた 今ほどリッチな要素が求められていなかった
フロントエンドはいつ生まれた?
2010年代前半説 エッジはフロントエンドなのか? バックエンドなのか? について考えてみる - Speaker Deck https://speakerdeck.com/aiji42/etuzihahurontondonanoka-batukuendonanoka-nituitekao-etemiru
昔は革命だったインクリメンタルサーチ
WEB+DB PRESS • 2006年10月 Vol.35 Ajaxの定石 • 2010年12月 Vol.60 jQuery実践入門
• 2011年8月 Vol.64 JavaScript最前線 • 2012年4月 Vol.68 Node.js実践入門
こうしてフロントエンドは 高度・複雑化して専門分野として確立
このような歴史的経緯があるため それぞれの強みが異なる
バックエンドエンジニアの強み • インフラ • データベース • サーバー構築 • CI/CD
バックエンドエンジニアの強み • インフラ • データベース • サーバー構築 • CI/CD ※単純にこれらの分野が職域だという話
...
フロントエンドエンジニアの強み • HTML/JS/CSS • アクセシビリティ • UI/UX
フロントエンドエンジニアの強み • HTML/JS/CSS • アクセシビリティ • UI/UX 変化が激しく、キャッチアップも大変。 バックエンドまで領域を伸ばせる人は、そう そういない
2. バックエンドは何で必要なのか?
BaaS, IDaaSがあれば不要なのでは?
バックエンドがないとつらいこと • セキュリティの担保 • 非同期処理・ジョブ実行 • ビジネスロジックの隠蔽 • 外部システム連携
バックエンドがないとつらいこと • セキュリティの担保 • 非同期処理・ジョブ実行 • ビジネスロジックの隠蔽 • 外部システム連携 時間のかかること、秘密にしたいこと
BaaS, IDaaSについて • メリット・デメリットの慎重な検討が必須 • アプリケーションの性質や運用体制によって 正解が異なる
話の都合上 以降はバックエンドは必要という前提
3. システム構成例
フロントエンドファーストでの構成例 Next.js
バックエンドファーストでの構成例 Laravel + Laravel Vite
バックエンドファーストでの構成例 Laravel + Laravel Vite 密結合
明確な分離を目指した構成例 シンプル!
4. フロントエンドとバックエ ンドは分離すべきか?
基本的には分離すべきと考える
分離しておく理由 • Information Leakage • あとから分けるの無理 • アーキテクチャーの柔軟性
Information Leakage 「モジュールが、自分の責任範囲を超えて 他のモジュールの知識や制約に依存してし まっている状態」 FE と BE が癒着するとツライ
あとから分けるの無理 無理
アーキテクチャーの柔軟性 • アーキテクチャー構成が柔軟 • ビルドプロセスの分割 • バージョンアップ、脆弱性対応などなど
よし、じゃあバックエンドを分離しよう! どの言語にしたらいい?
ぶっちゃけどれでもいい • 要点は責任分離 • プログラミング言語そのものは次点
一回目のまとめ • フロントエンドの重要性は今後も増す • バックエンドも依然として重要 • 特別な場合をのぞき、初手の分離が吉
5. PHPをおすすめする100の 理由
注意 この先はPHPを安心して選んでもらうた めのPRです 残り10分くらいだとちょうどいい
PHPを一言で表現すると 現代におけるプロダクト開発とPHPを選定するワケ #phpkansai - Speaker Deck https://speakerdeck.com/potato4d/xian-dai-niokerupurodakutokai-fa-tophpwoxuan-ding-suruwake-number-phpkansai?slide=58
PHPの歴史 JetBrains PHPverse 2025 – Online Event Celebrating 30 Years
of PHP https://lp.jetbrains.com/phpverse-2025/
PHPの歴史 JetBrains PHPverse 2025 – Online Event Celebrating 30 Years
of PHP https://lp.jetbrains.com/phpverse-2025/ 30周年
ウェブサイトの言語割合 Usage statistics of server-side programming languages for websites https://w3techs.com/technologies/overview/programming_language
ウェブサイトの言語割合 Usage statistics of server-side programming languages for websites https://w3techs.com/technologies/overview/programming_language
2025
PHPはハンマーのような単純な道具 PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp https://gihyo.jp/news/report/2015/12/1401
PHPの学習曲線(イメージ) 諸説ある
機能面
シェアードナッシング PHP & Shared Nothing Architecture: The Benefits and Downsides
– Tideways https://tideways.com/profiler/blog/php-shared-nothing-architecture-the-benefits-and-downsides
モダン化の流れ • 交差型、合併型、false型... • Immutable classes, properties • Attribute
モダン化の流れ • 非対称可視性 • Property hooks • レイジーオブジェクト • などなど....
けっこうモダンでしょ?
Composer Composer https://getcomposer.org/
PHPUnit PHPUnit: The PHP Testing Framework https://phpunit.de/index.html
PHPStan Find Bugs Without Writing Tests | PHPStan https://phpstan.org/
PHP-CS-Fixer PHP Coding Standards Fixer https://cs.symfony.com/
開発状況
The PHP Foundation The PHP Foundation — The PHP Foundation
— Supporting, Advancing, and Developing the PHP Language https://thephp.foundation/
年1回のアップデート PHP: Supported Versions https://www.php.net/supported-versions
php.internals php.internals mailing list https://news-web.php.net/group.php?group=php.internals
RFCによる機能変更議論 PHP: rfc:immutability https://wiki.php.net/rfc/immutability
PHPコミュニティ
PHPコミュニティ • 海外はある程度一定している • 日本では2023年から謎の盛り上がり... • 若手も流入してきおり活発
ユーザーコミュニティ world-phpcons-history.pdf - Google Drive https://drive.google.com/file/d/14wKvKtVPNtssGyFmlHndsFI3cgp7Uweo/view
ほぼ毎月カンファレンス 2025年に開催される全国のPHPカンファレンスのまとめ #PHP - Qiita https://qiita.com/akase244/items/00323a1bfbb6575f0c94
これから開催 • 2025/5/31 PHPカンファレンス新潟 • 2025/6/28 PHPカンファレンス • 2025/7/19 PHPカンファレンス関西2025
• 2025/11/8 PHPカンファレンス福岡2025 • 2025/11/24 PHPカンファレンス香川2025
• 2025/5/31 PHPカンファレンス新潟 • 2025/6/28 PHPカンファレンス • 2025/7/19 PHPカンファレンス関西2025 •
2025/11/8 PHPカンファレンス福岡2025 • 2025/11/24 PHPカンファレンス香川2025 これから開催 僕と握手!
二回目のまとめ PHP、けっこういいやつじゃん?