Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LaraVue勉強会(初めてのプロジェクト参加とDIの話)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
MashimaShiomi
October 28, 2019
3.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LaraVue勉強会(初めてのプロジェクト参加とDIの話)
LaraVue勉強会(初めてのプロジェクト参加とDIの話)
MashimaShiomi
October 28, 2019
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
11
38k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
730
Done Done
chrislema
186
16k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
ラッコキーワード サービス紹介資料
rakko
1
3.7M
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
160
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Transcript
初めてのプロジェクト参加とDIの話 株式会社 FABRIC TOKYO システム開発部 真嶋
Fabric Tokyo inc All rights reserved . 自己紹介 名前: 真嶋 汐美(マシマ シオミ)
経歴: 長崎造船所の工事担当 ↓ 2019/5~ FABRIC TOKYO サーバーサイドエンジニア 最近始めたこと: ヨガ(4回) 山登り(3回) laravel(5ヶ月) 勉強会参加(初)←new! LT登壇(初)←new!
Fabric Tokyo inc All rights reserved . FABRIC TOKYOの新サービス「FABRIC TOKYO
100」!
遡ること2ヶ月前
「FABRIC TOKYO100のマイページ周辺の 処理を作っておいて。」
「あ、そうそう。 他の処理と合わせてDIで実装してね」
「(DI?)」
Fabric Tokyo inc All rights reserved . まずはDIについて勉強してみた。
DIってなんだ? ※Dependency Injection(訳:依存性の注入)
車で例えてみた
Fabric Tokyo inc All rights reserved . DIを使用しない設計パターン マツダのエンジン 他の作業ができないので困っ
た。 もっと良いエンジン見つけたけ れど、工数ばかり増えて困った
Fabric Tokyo inc All rights reserved . DIを使用しない設計パターン 依存
Fabric Tokyo inc All rights reserved . DIを使用してみる エンジン 載せるところ
搭載 仕様 エンジンのことを気にせず作 業を進められるよ いらすとや製 エンジン マツダ製 エンジン
DIとは クラスやメソッド内で利用する機能を 外部から渡す設計パターンのこと
Fabric Tokyo inc All rights reserved . DI で実装してみる 継承
UserService クラス コンストラクタ 引数:SenderInterfaceのインスタンス SenderInterface インターフェイス メソッド send MailSender クラス メソッド send メール送信処理 引数としてインスタンスを渡す 注入
Fabric Tokyo inc All rights reserved . UserService クラス コンストラクタ 引数:MailSenderInterfaceのインスタンス
MailSender クラス SenderInterface インターフェイス
Fabric Tokyo inc All rights reserved . UserServiceクラスを使用するには Controllers/UserServiceController.php Providers/AppServiceProvider.php
Fabric Tokyo inc All rights reserved . DI で実装するメリット①: Senderクラスの進捗に関わらず、
UserServiceクラスの実装を進めることができる! (車の場合:エンジンの進捗に関わらず、自動車の他の部分の実装ができる)
Fabric Tokyo inc All rights reserved . UserService クラス コンストラクタ 引数:MailSenderInterfaceのインスタンス
MailSender クラス SenderInterface インターフェイス Mailを送信する処理を他の人に 頼んだり、あとから実装できる
Fabric Tokyo inc All rights reserved . DI で実装するメリット② 急な変更にも対応しやすい!
(車の場合:いらすとや製エンジンからマツダ製エンジンに変更できる。)
Fabric Tokyo inc All rights reserved . SlackSender クラス MailSenderInterfaceのモックを渡
してやれば良いので実際にメール は送信されない。 Providers/AppServiceProvider.php
Fabric Tokyo inc All rights reserved . DI で実装するメリット③ テストが簡単!
(車の場合:エンジンの検査と車の検査を切り離して実施することができて簡単。)
Fabric Tokyo inc All rights reserved . UserService クラス コンストラクタ 引数:MailSenderInterfaceのインスタンス
MailSender クラス SenderInterface インターフェイス 進捗を気にせず、UserServiceク ラスのテストを作成できる! MailSenderInterfaceのモックを渡 してやれば良いので実際にメール は送信されない。
Fabric Tokyo inc All rights reserved . まとめ DIで実装するのは少し大変だったけど、 機能を変更するときは便利だし、
テストも楽になるし、 作業も分担しやすいし、 いいことばかりだった。 DIを勉強してよかった!
ご静聴ありがとうございました
Fabric Tokyo inc All rights reserved . おまけ
Fabric Tokyo inc All rights reserved . DIを使用しない実装方法 UserServiceクラスのメソッドnotice →MailSenderクラスをインスタンス化
→sendメソッド呼び出し