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
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
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
270
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
The Curious Case for Waylosing
cassininazir
1
500
Ethics towards AI in product and experience design
skipperchong
2
370
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
520
Raft: Consensus for Rubyists
vanstee
141
7.7k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
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メソッド呼び出し