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
生成AIと読み解くLaravelの進化史:コミットメッセージからの洞察
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
cha1ra
March 21, 2025
650
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
生成AIと読み解くLaravelの進化史: コミットメッセージからの洞察
cha1ra
March 21, 2025
More Decks by cha1ra
See All by cha1ra
githubハンズオン_vscodeから作成_.pdf
cha1ra
0
350
githubハンズオン_リポジトリclone_.pdf
cha1ra
0
530
Puppeteer Introduction and my original command "dk"
cha1ra
0
140
Introduction of Babel
cha1ra
0
120
ProgWrap 企画書 v1.2.1
cha1ra
0
100
web_speech_api.pdf
cha1ra
0
420
はじめてのスクレイピング!- bs4 と Selenium を 使ってみよう! -
cha1ra
0
1.8k
Web Service Hackathon @Dec. 6, 2018
cha1ra
0
38
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Balancing Empowerment & Direction
lara
6
1.3k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
440
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Transcript
生成AIと読み解くLaravelの進化史: コミットメッセージからの洞察 2025/03/22 株式会社YuBASE 坂尻愛明
はじめまして! ©️2025 YuBASE Inc. 2 坂尻 愛明 さかじり あいら 千葉県出身
株式会社YuBASE CEO G’s ACADEMY TOKYO 主任講師 楽天株式会社ECコンサルタント 株式会社BluePlanet-works システムエンジニア 主な担当領域: Web開発、プログラミング教育 好きなもの: 歌(アカペラ)、バラエティ番組鑑賞
©️2025 YuBASE Inc. 3 会社概要 会社名 株式会社YuBASE (ユーベース) 代表者氏名 代表取締役
坂尻 愛明 顧問 技術顧問 中村 太一 事業内容 Webアプリケーション開発 DX支援コンサルティング プログラミング教育 設立年月日 2022年3月9日 所在地 〒 140-0015 東京都品川区西大井1丁目1-2Jタワー西大井 イーストタワー2階
今回のトークテーマ ©️2025 YuBASE Inc. 4
CONTENTS ©️2025 YuBASE Inc. 5 目次 #01 #02 Laravelの誕生と黎明期(2011-2012) #03
モジュール化への進化(2013-2014) #04 現代的アーキテクチャへの転換(2015-2019) #05 パフォーマンスとスケーラビリティの追求(2020-現在) まとめ
ところで、 ©️2025 YuBASE Inc. 6 Laravelはいつ誕生したでしょう?
Laravel リリースの歴史 ©️2025 YuBASE Inc. 7 バージョン リリース日 1.0 beta1
2011年6月8日 2.0 2011年11月23日 3.0 2012年2月22日 4.0 2013年5月28日 5.0 2015年2月4日 6.0 2019年9月3日 7.0 2020年3月3日 8.0 2020年9月8日 9.0 2022年2月8日 10.0 2023年2月14日 11.0 2024年3月12日 12.0 2025年2月24日
今回この辺を手厚く話します ©️2025 YuBASE Inc. 8 バージョン リリース日 1.0 beta1 2011年6月8日
2.0 2011年11月23日 3.0 2012年2月22日 4.0 2013年5月28日 5.0 2015年2月4日 6.0 2019年9月3日 7.0 2020年3月3日 8.0 2020年9月8日 9.0 2022年2月8日 10.0 2023年2月14日 11.0 2024年3月12日 12.0 2025年2月24日
調査手法 ©️2025 YuBASE Inc. 9 1. 各バージョン間の diff 情報・コミット情報を取得 3.
GPT4.5 DeepResearch による インサイトの裏付け git diff 3d984ba30fbd02c6250018b504ef7198a3f03a20 257d917e196eef20fcd27eb91697dc3b5c75429f > ../data/diff_2.0.0_3.0.0.txt git log 3d984ba30fbd02c6250018b504ef7198a3f03a20 257d917e196eef20fcd27eb91697dc3b5c75429f -- format="%an: %s" > ../data/log_2.0.0_3.0.0.txt 2. Gemini 2.0 Flash を用いたインサイト抽出
Devinにも調査してもらいました ©️2025 YuBASE Inc. 10
©️2025 YuBASE Inc. 11 Laravelの誕生と黎明期 (2011-2012)
全てはここから始まった ©️2025 YuBASE Inc. 12 Taylor Otwell,2011-06-08 23:45:08 -0500,initial commit
of laravel!
Laravelの名前由来 ©️2025 YuBASE Inc. 13
では、 ©️2025 YuBASE Inc. 14 Laravel 1.1.1の中身をみてみましょう
バージョン1時代のページ表示フロー ©️2025 YuBASE Inc. 15 初期設定フェーズ フレームワークの基本設定を行う リクエスト処理フェーズ ルーティングと処理実行を行う レスポンス送信フェーズ
生成したレスポンスを返す
各フェーズの詳細 ©️2025 YuBASE Inc. 16 初期設定 リクエスト処理 レスポンス生成
バージョン1はMVCフレームワークではなかった ©️2025 YuBASE Inc. 17 コントローラが存在しない シンプルなルーティングとビューのみの提供
バージョン2が誕生! ©️2025 YuBASE Inc. 18
バージョン2への変化 ©️2025 YuBASE Inc. 19 アーキテクチャの抜本的な刷新 依存性注入(DI)とIoCコンテナの導入、Facadeパターンの実装、Bladeテン プレートエンジンの採用 現代的なWeb開発機能の拡充 Redisサポート、Cookie
セッションドライバ、データベース表現、MVC完全対 応(コントローラの実装) 開発体験の大幅な向上 ビューコンポーザー、入力フラッシュの改善、リダイレクトの強化
バージョン3への変化 ©️2025 YuBASE Inc. 20 モジュール化によるコード整理 バンドルシステムの導入により、機能単位での分割・再利用が可能に CLI機能の強化 Artisanコマンドラインインターフェースの拡充が開発ワークフローを効率化 依存性注入とFacadeの進化
より洗練されたIoCコンテナとFacadeパターンの発展 ルーティングとデータベース機能の刷新 複雑なアプリ要件に対応するための抜本的な改善
©️2025 YuBASE Inc. 21 モジュール化への進化 (2013-2014)
大事件が起こります ©️2025 YuBASE Inc. 22 Laravel4 は 完全書き直し!
バージョン4への変化(1/2) ©️2025 YuBASE Inc. 23 コンポーザーベースの依存管理 Composerを完全採用し、パッケージ管理を近代化 プラグインやモジュールの導入が容易になり、再利用性が向上 フレームワークの完全な再構築 各コンポーネントが独立したパッケージとして開発され、分離度が向上
テスト容易性の大幅な改善とユニットテストのカバレッジ拡大 キュー機能の導入 バックグラウンド処理とジョブキューの導入 非同期処理による重たい処理の効率
バージョン4への変化(2/2) ©️2025 YuBASE Inc. 24 データベース操作の強化 シーディングとマイグレーションシステムの大幅な改良 Eloquent ORMの機能拡張と改善されたクエリビルダー セキュリティの強化
より堅牢な認証システムとCSRF保護の実装 入力バリデーションの仕組みの刷新
Project “Illuminate” ©️2025 YuBASE Inc. 25
©️2025 YuBASE Inc. 26 現代的アーキテクチャへの転換 (2015-2019)
バージョン5への変化 ©️2025 YuBASE Inc. 27 設計哲学の刷新 PSR-4オートローディングの採用によるコード構造の改善 契約インターフェースの導入による依存性の低減と柔軟性の向上 ミドルウェアの導入 HTTPリクエストフィルタリングの新アプローチ
認証、CSRF保護などの共通処理を簡潔に実装可能に フォームリクエストの実装 バリデーションロジックをコントローラから分離 リクエスト単位での認証と承認の処理が可能に
バージョン5への変化 ©️2025 YuBASE Inc. 28 スケジューラの導入 Cronジョブの管理をLaravel内で実装可能に タスクスケジューリングの柔軟な設定オプション Socialiteパッケージ OAuthプロバイダを用いたソーシャル認証の簡素化
Facebook、Twitter、Google、GitHubなどとの連携が容易に 設定のキャッシュ機能 本番環境でのパフォーマンス向上 環境ごとの設定管理の改善
「何をするか」と「どのように実装するか」の分離 ©️2025 YuBASE Inc. 29 • 手動でのファイル読み込み • 特定の実装に直接依存 •
密結合なコンポーネント • 機能の再利用が困難 • ハードコーディングの多用 • テストが複雑になりがち • PSR-4による自動読み込み • 契約インターフェースの活用 • 疎結合なコンポーネント • コード再利用性の向上 • 依存性注入の積極的な活用 • テスタビリティの向上 As-Is To-Be
サービスコンテナの進化 ©️2025 YuBASE Inc. 30 Laravel 1 静的クラスとシングルトンパターンを主に使用 Laravel 2
初期のIoCコンテナの導入でテスト容易性が向上 Laravel 4 バインディング概念の明確化と、より柔軟な依存性注入の仕組み Laravel 5以降 サービスプロバイダーを中心とした設計と自動依存解決の進化
静的クラスとシングルトンパターンでの実装 ©️2025 YuBASE Inc. 31
初期IoCコンテナの導入 ©️2025 YuBASE Inc. 32
バインディングの概念導入 ©️2025 YuBASE Inc. 33
サービスプロバイダを活用した登録システム ©️2025 YuBASE Inc. 34
Laravelのフロントエンド統合の変遷 ©️2025 YuBASE Inc. 35
API認証システムの変遷 ©️2025 YuBASE Inc. 36
©️2025 YuBASE Inc. 37 パフォーマンスと スケーラビリティの追求 (2020-現在)
Laravel Octane による 処理高速化 ©️2025 YuBASE Inc. 38 • リクエストごとに
アプリケーションをフル起動 (ブートストラップ) • 設定読み込み、サービス初期化、 ルート登録などを毎回実行 • リクエスト終了後は全リソースを 破棄 • 安全性は高いが、パフォーマンス に大きなボトルネック • Swoole or RoadRunner による 常駐型アプリケーションサーバー • アプリケーションを一度だけ起動 → メモリに常駐 • リクエスト間で起動コストを削減 → 高速レスポンス • 最大10倍の速度向上、Node.jsや Goと肩を並べるレベルへ As-Is To-Be
インフラレス開発の可能性 ©️2025 YuBASE Inc. 39
フロントエンドフレームワークに負けない機能性 ©️2025 YuBASE Inc. 40
エコシステムの成熟へ ©️2025 YuBASE Inc. 41
©️2025 YuBASE Inc. 42 まとめ
©️2025 YuBASE Inc. 43 Have a nice Laravel Life!
Thank you.