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
Laravel勉強会 2016
Search
hihats
December 19, 2016
Technology
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Laravel勉強会 2016
hihats
December 19, 2016
More Decks by hihats
See All by hihats
Which Json Serializer should we use in Ruby on Rails6 era
hihats
1
150
ソフトウェア設計についての基本認識
hihats
1
120
アジャイル開発を始める前におさえておきたいこと
hihats
0
130
AWS Lambdaの今現在
hihats
0
820
コードの静的解析ツールを使う目的と効用
hihats
0
270
DIコンテナを学ぶ
hihats
2
410
Other Decks in Technology
See All in Technology
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
omasushiというライブラリを作った
polidog
PRO
0
220
2026_devsumi_ozono.pdf
o3
3
480
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
680
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
240
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2.2k
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
230
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
180
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
1.7k
MCPをつなげて作る組織横断のAIエージェント基盤(の開発工程)
tsubakimoto_s
0
120
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
140
あるけみー式LTスライド作成術
alchemy1115
1
210
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Balancing Empowerment & Direction
lara
6
1.3k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
How to Ace a Technical Interview
jacobian
281
24k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
500
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Speed Design
sergeychernyshev
33
2.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
Faster Mobile Websites
deanohume
310
32k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Transcript
エキスパートによる Laravel講座 @株式会社イノベーション 2016/12/19
株式会社イノベーション ではLaravel5.2を採用 しております。
正しく使えているかわからない問題
独学では限界があるので、教えを請いたい
講師をお招きしました
竹澤 有貴さん 1. 株式会社アイスタイル 2. Laravelリファレンス著者 3. 各地のPHPカンファレンス系イベントで よく喋ってます
栗生 和明さん 1. DIP株式会社 2. リファレンス本レビュアー 3. バージョン3のころから、趣味でLaravel 使用
弊社サービス紹 介 Our Services https://www.innovation.co.jp/service/
ざっくり本日の テーマ First of all • Laravelを使う上での原則 • 逆にアンチパターン •
その他、状況によるもの • 個別のおはなし
Laravel原則とアンチパターン
原則 First of all • DIコンテナ(Laravelそのものなの で) • (原則というより)設計ありきで処 理フローはお好きに
• あえて言うならオブジェクト指向 設計の原則(と呼ばれるもの)に は従おう
アンチパターン Anti Pattern • サービスロケーター • コントローラーにDBアクセス処理 を書く ≒ Eloquentのメソッドを使う
状況に依るもの On a case by case basis • Service Containerに登録する
ルール 抽象に依存しているケース Repositoryパターンや Service クラスやRequestクラスをまとめ るとか?) • ServiceProviderを作る基準 (分け方など) • Facadeを使うルール
個別に聞きたい localdiskさんの「Laravelにおける後悔しないため のアプリケーション設計」 (https://speakerdeck.com/localdisk/laravelni okeruhou-hui-sinaitamefalseapurikesiyonshe- ji) のスライドをみて気になった点
【理由】 クラスの責務が大きくなる Facadeを使う代わりにDIにすると、メソッドの引数 に使用するクラスが並ぶ(のがやばさを教えてくれ てよい) 確かに・・・ ではどのくらいまで?? • 極端な話全てContractをDIすればよい か
Facadeを控える 責務を負いすぎていないかの目安を作る e.g. 依存関係で表したら10個もあるよ! ちゃんと分割できてないよ!
どうしても太りがちなControllerがすっきり ! php artisan make:request **** で作成できる ので、推奨ぽい Requestに対する操作やValidation処 理が膨らむなら、有無を言わさず導入し
たほうがよいか? いいと思う! FormRequest
【なぜよくないか】 Controllerの責務の問題 Modelにクエリを閉じ込め、 ControllerはModelのメ ソッドを呼ぶのみ Model(らしきもの)でEloquentのメソッ ドチェインする分にはOK デメテルの法則的な話を含む 徹底すべき ControllerでEloquentのメソッドチェイン禁止
良さと、注意点を聞きたい(テストで困るのは分かるが、Repositoryパターンでなく てもサービス層を分離できそうな気がする) リポジトリパターン Laravel界隈のリポジトリパターンが間違っている情報も多い 本家であるSymfonyのDoctrineのデータマッパーパターンを知る DDDについても知る
Conclusion まずは組織としての目指す方向性 そしてフレームワークのソースコードから読み取る ドメイン駆動設計でやりたいなら、学ぶための良書がいくつかあるので、それを読む それ以前にオブジェクト指向の基本、「疎結合を守る」などシンプルな部分