Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-...
Search
Ryo Tomidokoro
May 24, 2025
Technology
14k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-not-bad
TSKaigi2025の登壇資料です
Ryo Tomidokoro
May 24, 2025
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
2.5k
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
1.9k
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
8
3.9k
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
2
2k
どうすると生き残れないのか/how-not-to-survive
hanhan1978
17
15k
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
300
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
8
4k
集中して作業する技術/how_to_work_deeply
hanhan1978
69
62k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
12k
Other Decks in Technology
See All in Technology
AIアプリを使い分けるための共通ツール基盤を考えてみる#devio2026
osawa
0
250
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
230
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
290
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
210
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
280
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
510
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
130
サーバーフルコンピューティング?AWS Lambda
iwatatomoya
1
240
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
410
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
220
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.6k
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
580
Writing Fast Ruby
sferik
630
63k
How to train your dragon (web standard)
notwaldorf
96
6.8k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Optimising Largest Contentful Paint
csswizardry
37
4k
Agile that works and the tools we love
rasmusluckow
331
22k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
570
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
270
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、けっこういいやつじゃん?