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
660
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
540
Puppeteer Introduction and my original command "dk"
cha1ra
0
140
Introduction of Babel
cha1ra
0
130
ProgWrap 企画書 v1.2.1
cha1ra
0
110
web_speech_api.pdf
cha1ra
0
420
はじめてのスクレイピング!- bs4 と Selenium を 使ってみよう! -
cha1ra
0
1.8k
Web Service Hackathon @Dec. 6, 2018
cha1ra
0
42
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How to Ace a Technical Interview
jacobian
280
24k
Paper Plane
katiecoart
PRO
5
54k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
750
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
530
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
The Curse of the Amulet
leimatthew05
3
16k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
740
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
30 Presentation Tips
portentint
PRO
1
430
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.